当我尝试使用Build ant文件以fork模式运行Junit测试用例(在单独的JVM中启动每个测试)时,我遇到了这个问题 .
[junit]线程“main”中的异常java.lang.NoClassDefFoundError:java.lang.ClassLoader.defineClass1中的weblogic / management / WebLogicMBean [junit](本机方法)[junit] at java.lang.ClassLoader.defineClass(ClassLoader . java:621)[junit] at java.security.ClassLoader.defineClass(SecureClassLoader.java:124)[junit] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)[junit] at java.net.URLClassLoader . 访问$ java(URLClassLoader.java:56)[junit] java.net.URLClassLoader $ 1.run(URLClassLoader.java:195)[junit] java.security.AccessController.doPrivileged(Native Method)[junit] at java.net .URLClassLoader.findClass(URLClassLoader.java:188)[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)[junit] at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)[ junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:252)[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)[junit] at java.lang.ClassLoader.defineClass1(Native Method) [ junit] at java.lang.ClassLoader.defineClass(ClassLoader.java:621)[junit] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] at java.net.URLClassLoader.defineClass(URLClassLoader.java :260)[junit] at java.net.URLClassLoader.access $ 000(URLClassLoader.java:56)[junit] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:195)[junit] at java.security.AccessController .doPrivileged(Native Method)[junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)[junit] at sun.misc . Launcher $ AppClassLoader.loadClass(Launcher.java:301)[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:252)[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)[junit ] java.lang.ClassLoader.defineClass1(Native Method)[junit] at java.security.ClassLoader.defineClass(ClassLoader.java:621)[junit] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)[ junit]在java . net.URLClassLoader.defineClass(URLClassLoader.java:260)[junit] at java.net.URLClassLoader.access $ 000(URLClassLoader.java:56)[junit] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:195) ....
我的构建库文件夹中有库weblogic.jar,它被设置为junit任务的类路径 . 我看看这个文件,里面找不到WeblogicMBean.class .
但是,在Jdev中,如果我将库引用设置为此weblogic.jar文件并且编译我的类没有问题,我可以将 weblogic.management.WeblogicMBean
导入到我的类中 .
什么是真的出错的任何建议?
非常感谢 .
1 回答
NoClassDefFoundError通常表示在 runtime 找不到该类的 correct 版本 .
由于您的编译很好,编译时的CLASSPATH是否与运行时相同的jar引用?还要检查JUnit的运行时CLASSPATH中是否有多个weblogic.jar .
什么是你的weblogic版本,该类至少在版本9的weblogic.jar中 .