从Eclipse运行JUnit测试会产生ClassNotFound错误

Bal*_*pal 6 eclipse maven-2 junit4 m2eclipse

我试图JUnit从Eclipse 运行测试,但在运行这些测试时,我得到了ClassNotFoundException

完整堆栈跟踪如下:

java.lang.NoClassDefFoundError:引起:java.lang.ClassNotFoundException:来自java.net的java.security.AccessController.doPrivileged(Native Method)的java.net.URLClassLoader $ 1.run(URLClassLoader.java:202). java.lang.ClassLoader.findClass(URLClassLoader.java:190)位于java.lang.ClassLoader.loadClass(ClassLoader.java:307)的sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at java.lang.ClassLoader.loadClass (ClassLoader.java:248)线程"main"中的异常

我已经搜索谷歌这个,并发现有几个人面临这个问题,但他们似乎没有解决我的问题.这可能是由于平台的差异

我的开发平台如下

OS: Windows XP
Eclipse JUNO
JUnit4
Maven2
Run Code Online (Sandbox Code Playgroud)

同时,如果我使用maven运行这个项目,它运行得非常好.

对我来说最奇怪的部分ClassNotFound是抛出异常的类的名称.班级名称是of.

这真是让我感到震惊.

此外,我上面列出的堆栈跟踪,这就是我得到错误时所得到的所有内容.

我已经被困在这个问题上2天了,任何帮助都将不胜感激.

gff*_*fny 11

我尝试了这里和其他帖子中提到的所有内容.人们提供的一些解决方案是:

  1. 更改测试的输出文件夹
  2. 为将从Maven运行test-compile的项目创建自定义构建器
  3. 在项目构建路径的"顺序和导出"列表中将Maven依赖项移到更高的位置

有很多很多,但我找到的工作如下:关闭开发环境.从我的本地Maven存储库中删除项目使用的jar.打开IDE.建立项目.运行测试.

经过几个小时的敲击我的键盘并按照建议的解决方案,这个工作!如果这不起作用,您可以尝试搜索我上面列出的解决方案.


小智 7

右键单击Eclipse中的项目名称并选择"Maven - > update project"通常可以解决此问题.