“线程中的异常”;“主要”;我的测试中的java.lang.NoClassDefFoundError

“线程中的异常”;“主要”;我的测试中的java.lang.NoClassDefFoundError,java,noclassdeffounderror,Java,Noclassdeffounderror,我知道这个问题已经问过很多次了,但我想不出来( 我有一个大项目,结构如下: Project - build - Config - src - tst - build.xml - webapp - eclipse-bin tst/com/myspace/gateway/content/restlet/SanityTest.java下有一个java文件 在java文件中: package com.mys

我知道这个问题已经问过很多次了,但我想不出来(

我有一个大项目,结构如下:

Project - build
        - Config
        - src
        - tst
        - build.xml
        - webapp
        - eclipse-bin
tst/com/myspace/gateway/content/restlet/SanityTest.java下有一个java文件 在java文件中:

package com.myspace.gateway.content.restlet;
...
public class SanityTest extends ContentGatewayRestletResourceTestCase {
...
public static void main() {
}
}
整个项目编译后,SanityTest的类文件处于build/private/classes/tests/com/myspace/gateway/content/restlet/SanityTest.class下

我进入build/private/classes/tests并运行了“java-cp.com.myspace.gateway.content.restlet.SanityTest”,但得到了NoClassDefFoundError

请帮帮我

附言: 堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: com/myspace/gateway/content/ContentGatewayTestCase
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Caused by: java.lang.ClassNotFoundException:         com.myspace.gateway.content.ContentGatewayTestCase
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 24 more
Could not find the main class: com.myspace.gateway.content.restlet.SanityTest.  Program will exit.
你跑了

java -cp . com/myspace/gateway/content/restlet/SanityTest
你应该跑:

java -cp . com.myspace.gateway.content.restlet.SanityTest
阅读此问答了解更多详细信息:


更新

根据stacktrace,问题在于Java找不到
ContentGatewayTestCase
类。据推测,这是您的
SanityTest
类所依赖的类。但是,源代码片段显示
SanityTest
扩展了
ContentGatewayRestleResourceTestCase
。您需要弄清楚如果
ContentGatewayTestCase
依赖项正确:

  • 如果是,则相应的“.class”文件需要与“SanityTest.class”文件位于同一目录中

  • 无论哪种方式,您可能在编译代码的方式上有问题


wow我需要重新构造我的代码…即使类路径中的类正确,也可能发生NoClassDefFoundError。原因可能是静态代码失败或classloader尝试加载类时出现任何othrr异常。您可以将完整错误(包括堆栈跟踪)复制到问题中吗?使用“编辑”按钮,并正确设置格式。为什么要回滚格式更改?您认为它看起来更好吗?如果我使用maven构建我的项目,并说它会将我的类放在两个单独的文件夹中,一个名为./classes/和另一个名为./test classes/以运行我的主文件I,请小心运行命令行的位置必须采用以下形式:D:\Data\myUser\Documents\NetBeansProjects\DeleteMe\target>java-cp./classes/;./test classes/launcher.Main | Lisbon我确实运行了java-cp.com.myspace.gateway.content.resetlet.SanityTest。我在OP中的错误,我会更新它。