我使用 Netbeans7.0.1 编写了一个 Java 程序来测试 RESTful Web 服务,它在那里运行良好。现在我编写了 build.xml 文件来编译代码,当我尝试运行生成的 .class 文件时,我总是遇到这个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: ClientREST (wrong name: clientrest/ClientREST)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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: ClientREST. Program will exit.
名称和路径是正确的,那么我为什么会收到此异常有什么想法吗?
原文由 thinkBig 发布,翻译遵循 CC BY-SA 4.0 许可协议
因此,您将其运行为
java ClientREST
。它期待ClientREST.class
没有任何package
。嘿,这个类试图告诉你它有一个
package clientrest;
。您需要从包根目录运行它。向上移动一个文件夹,这样您就位于包含代表包的clientrest
文件夹的文件夹中,然后执行java clientrest.ClientREST
。你 不 应该进入
clientrest
包文件夹并执行java ClientREST
。