我对这个错误感到困惑:
java.lang.NoClassDefFoundError: junit/framework/TestCase
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:638)
...
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.run(CoreTestApplication.java:23)
...
Caused by: java.lang.ClassNotFoundException: junit.framework.TestCase cannot be found by org.eclipse.xtext.junit_2.4.3.v201309030823
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 78 more
当我将 Xtext DSL 的测试作为插件测试运行时(即,当内部启动新的 Eclipse 平台时),会发生异常。有时候是这样的before我的任何代码都会被执行。
当我查看插件依赖项时,我可以看到org.junit_4.11.0.v201303080030.jar
在类路径上,我也看到/.../workspace/.metadata/.plugins/org.eclipse.pde.core/.external_libraries/org.junit_4.11.0.v201303080030/junit.jar
所以OSGis肯定能够解决这种依赖性。
Xtext 2.4.3 是否可以与 JUnit 4.11 配合使用,还是我必须将 Eclipse 安装降级到 JUnit 4.10?
两点
First
检查你的Project Properties->Java Build Path->Libraries (tab)
。 JUnit 应该在那里,尽管这通常会出现在构建中。
检查你的项目Run Configurations->JUnit->Classpath (tab
)。 JUnit 应位于项目的用户条目下。
Second
检查您是否有以下插件
org.eclipse.xtext.xbase.junit
org.junit (3.8.2)
org.junit (4.8.2)
[EDIT]这让我走上了正轨。要修复该错误,请确保您的目录中有 org.junit 3.8目标平台 http://help.eclipse.org/kepler/index.jsp?topic=/org.eclipse.pde.doc.user/concepts/target.htm!
解释:上面的错误意味着Eclipse本身无法启动。 JUnit 运行程序似乎依赖于 JUnit 3.8。它不会被使用,但如果没有它,整个平台就无法初始化。
您可以通过查看堆栈跟踪来了解是否有相同的问题:它是否包含RemotePluginTestRunner.main
?
要修复该错误,请将 org.junit 3.8 捆绑包添加到您的目标平台。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)