NoClassDefFoundError:名称错误

新手上路,请多包涵

我使用 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 许可协议

阅读 509
2 个回答

线程“main”中的异常 java.lang.NoClassDefFoundError: ClientREST

因此,您将其运行为 java ClientREST 。它期待 ClientREST.class 没有任何 package


(错误名称:clientrest/ClientREST)

嘿,这个类试图告诉你它有一个 package clientrest; 。您需要从包根目录运行它。向上移动一个文件夹,这样您就位于包含代表包的 clientrest 文件夹的文件夹中,然后执行 java clientrest.ClientREST

应该进入 clientrest 包文件夹并执行 java ClientREST

原文由 BalusC 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在使用命令行 java 时遇到了这个错误:

java -cp stuff/src/mypackage Test

其中 Test.java 位于包 mypackage 中。

相反,您需要将类路径 -cp 设置为基本文件夹,在本例中为 src,然后将包添加到文件名前。

所以它最终会看起来像这样:

java -cp stuff/src mypackage.Test

原文由 Gaʀʀʏ 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题