我的ANT脚本在我的linux机器和一些xp VM上运行没有问题。当另一位工程师试图在本地启动它时,TestNG抛出[testng]引起:java.lang.ClassNotFoundException:找不到com.google.inject.internal.asm.util.TraceClassVisitor(我的库都在这里)
我之前从未见过这个课程,也不知道是什么导致这个只发生在他的机器上。我已经尝试导入asm-util-3.1.jar但它找不到它,因为它在com.google.internal.asm.util而不是org.objcetweb.asm.util中查找。
答案 0 :(得分:1)
使用Eclipse TestNG插件时出现了类似的错误:
testng java.lang.noclassdeffounderror: com/google/inject/internal/Lists
这看起来可能与Guice的版本有所区别 正在从类路径加载 - Guice 2.0具有上面的类 而在Guice 3.0中似乎已经转移到:
com/google/inject/internal/util/Lists
TestNG Eclipse插件的更新版本解决了这个问题。
答案 1 :(得分:0)
它看起来像是与Guice或Asm相关的问题。您是否正在使用带有Maven的TestNG或直接从http://testng.org下载的jar文件?
Maven版本仅包含TestNG类,并允许Maven下载所有其他依赖项。
jar文件包含所有依赖项,包括guice.jar,因此如果您已在环境中使用不同版本的Guice,则可能会导致冲突。
答案 2 :(得分:0)
事实证明,虽然他已经安装了适当版本的Java并且由他的环境指向,但在Java的.conf文件的深处,有一个旧的1.5安装的引用(JVM_ROOT)。感谢Cedric的帮助!