我的代码是在OSX上编译的,运行良好(编译器版本1.6)。但当我把它复制到一个遥控器时。我不能运行它。
当我跑的时候
java TPCC.class
我遇到了这样的异常。(顺便说一下,TPCC.class是默认包)
Exception in thread "main" java.lang.NoClassDefFoundError: TPCC/class
Caused by: java.lang.ClassNotFoundException: TPCC.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: TPCC.class. Program will exit.
以及我在ubuntu上的java版本:
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)
它也是1.6,我认为它符合编译后的二进制文件。我怎样才能解决这个问题?
发布于 2012-07-20 07:05:08
问题在于你运行程序的方式。编译的java调用
ClassName.java
将是ClassName.class。你应该像这样运行它
"java ClassName“
。你不应该把它当作
"java ClassName.class“
这里发生的就是这个。当您以java ClassName.class的形式运行它时,JVM试图在名为" ClassName“的包中查找不存在的名为”ClassName“的ClassName。所以它会抛出NoClassDefFoundError。
发布于 2012-07-20 06:47:37
正如错误所示,这是一个调用问题:应该使用java,而不是类的文件名。错误消息试图通过声明"TPCC/class“没有找到来告诉您这一点。
(抱歉第一次添加注释,使用了错误的字段)
发布于 2012-07-20 06:53:33
在调用java时指定类路径:
java -cp <path-to-jar> TPCC
https://stackoverflow.com/questions/11574022
复制相似问题