NoClassDefFoundError: 错误的名称

2022-08-31 14:29:27

我编写了一个java程序来测试使用Netbeans7.0.1的RESTful Web服务,它在那里工作得很好。现在我编写了构建.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.

名称和路径是正确的,那么任何想法为什么我得到这个例外?


答案 1

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

因此,您将其作为 运行。它期待一个没有任何.java ClientRESTClientREST.classpackage


(错误的名称:clientrest/ClientREST)

嘿,全班同学正试图告诉你它有一个.您需要从包根目录运行它。向上移动一个文件夹,以便您位于该文件夹中,该文件夹又包含表示包的文件夹,然后执行 。package clientrest;clientrestjava clientrest.ClientREST

不应进入包文件夹并执行 。clientrestjava ClientREST


答案 2

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

java -cp stuff/src/mypackage Test

其中 驻留在包中。Test.javamypackage

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

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

java -cp stuff/src mypackage.Test


推荐