运行原代码中包含package channnel;语句的class文件的疑惑

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:02:53
在CMD 中输入java E:\channel\EchoServer运行EchoServer.class出现Exception in thread "main" java.lang.NoClassDefFoundError: f:\channel/EchoServer

进入channel文件中,输入:java EchoServer出现Exception in thread "main" java.lang.NoClassDefFoundError: EchoServer (wrong nam
e: channel/EchoServer)

只有在F\根目录下输入java channel.EchoServer时才能成功运行,这是为什么?
此外,运行上面的class还有其他的命令吗?我记得好像还有的,知道的请说一下!

因为查找Class时候使用classpath + packageName的,classpath包括当前目录
所以执行E:\channel\EchoServer被认为是类名叫做E:\channel\EchoServer。。。
而在channel文件夹执行,被认为该类没有package。因此和channel.EchoSerer不匹配。