刚刚上手java,eclipse 确实好用。不过还是想在命令行里编译试试,就用了eclipse下写的一个 Hello 类。
先转到Hello.class文件夹下,输入javac Hello.java得到 Hello.class,然后输入 java Hello。"砰",弹出了如题所示的错误。
google 之,都说是路径问题,于是又用export PATH= $PATH:. 将当前文件夹位置加入路径,再次尝试,还是 "砰" 的一声,同样的错误。
仔细看了看错误,恍然大悟。
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: my/hello/Hello)
根本不是路径问题,我这个Hello class是放在my.hello这个package里的,全名应该是my.hello.Hello。 而如果在my/hello/ 中执行java Hello实际上是在java.lang默认package里寻找。当然找不到,所以会出现wrong name这种错误。
解决方法:将目录转到包含这个package的文件夹下,因为我是用eclipse写的,所以是在src文件夹下。然后输入java my.hello.Hello , 问题解决。