Eclipse中AspectJ项目中的JUnit测试的ClassNotFoundException

时间:2010-11-30 15:03:51

标签: java eclipse junit aspectj classnotfoundexception

谷歌有一些答案,但它们都适用于使用Maven的人。我没有使用Maven所以我很难过。我有其他没有使用AspectJ插件的项目,他们的JUnit测试在Eclipse中运行良好。我无法弄清楚为什么Eclipse找不到这个类。我右键单击类本身,然后我告诉它作为JUnit测试运行。它适用于我的非AspectJ项目中的JUnit测试。有人可以帮忙吗?

Class not found BasicSpectrogramPeriodogramTests
java.lang.ClassNotFoundException: BasicSpectrogramPeriodogramTests
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    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)
    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.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

2 个答案:

答案 0 :(得分:1)

以前我遇到类似的问题和问题是由于外部库(例如Selenium服务器)的构建路径损坏。首先,请打开构建路径(右键单击项目 - >构建路径 - >配置构建路径)并验证是否可以成功加载所有外部库(有“无法加载”等消息)。很可能在优化或添加Ant等外部工具时重命名/移动了库。希望这有帮助


WBR,安德烈

答案 1 :(得分:0)

AspectJ插件可能会影响您的构建类路径,但不会影响运行时类路径。为您的类创建一个启动器条目,然后显式设置类路径以包含jar。

使用Eclipse的“加载类型”函数来查看它从何处加载类。

Ctrl-Space-T拉出一个对话框。输入目标类名“BasicSpectrogramPeriodogramTests 它应该在工作区中显示包名称和位置,在所有列出的类的类名右侧,或者在选定类的对话框底部附近。这将包括jar及其路径,如果是这样的话它正在被Eclipse加载。

确保您的类的路径是运行时配置类路径中的路径。在类路径的顶部显式添加它,即使它是一个dup。