今天想测试个类,路径为/workspace/javalearn/src/JVM/VolatileTest.java,没有包含其他类。
然后用终端cd到JVM下,javac VolatileTest.java,正常,同目录下生成了VolatileTest.class文件。
java VolatileTest,出错了,报错
Exception in thread "main" java.lang.NoClassDefFoundError: VolatileTest (wrong name: JVM/VolatileTest)
查了很多资料,说什么classpath错了之类的,改了也没用。
后来看到一个资料http://www.cnblogs.com/xing901022/p/4185514.html,讲说可能是java文件里写了包的问题。我一看,果然是
我后退一层,从....src/JVM/ 退到src/, 重新执行,果然就可以了
说明因为代码中的“package JVM;”,使用java指令时会执行此句,在JVM/ 目录下执行java VolatileTest 会等同于 路径为JVM/JVM/VolatileTest,当然会出错。
希望能给其他同学带来一些帮助。