Compiler errors TestNG对我来说很好,但对其他工程师抛出com.google.inject.internal.asm.util.TraceClassVisitor classnotfoundexception

Compiler errors TestNG对我来说很好,但对其他工程师抛出com.google.inject.internal.asm.util.TraceClassVisitor classnotfoundexception,compiler-errors,guice,testng,Compiler Errors,Guice,Testng,我的ANT脚本在我的linux机器和一些xp虚拟机上运行没有问题。当其他工程师试图在本地启动时,TestNG抛出[TestNG],原因是:java.lang.ClassNotFoundException:com.google.inject.internal.asm.util.TraceClassVisitor未在中找到(我的库都在这里) 我以前从未见过这门课,也不知道是什么原因导致这只发生在他的机器上。我尝试导入了asm-util-3.1.jar,但没有找到它,因为它在com.google.in

我的ANT脚本在我的linux机器和一些xp虚拟机上运行没有问题。当其他工程师试图在本地启动时,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中查找。

它看起来确实与Guice或asm相关。您是将TestNG与Maven一起使用,还是直接从中下载jar文件

Maven版本只包含TestNG类,并允许Maven下载所有其他依赖项


jar文件包含所有依赖项,包括guice.jar,因此如果您已经在您的环境中使用了不同版本的guice,这可能会导致冲突。

结果表明,虽然他安装了正确版本的Java,并由他的环境指向,在Java.conf文件的深处,有一个对旧1.5安装的引用(JVM_ROOT)。谢谢你的帮助,塞德里克

我们在使用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插件的更新版本修复了这个问题。

使用TestNG.org中的jar文件,其他机器运行得很好。他已经很长时间没有在他的机器上使用Java了,不要认为他故意安装了Guice。这个类不是testng-5.12.1.jar中包含的Guice的一部分,所以我们有两件事要调查:1)为什么它可以在您的机器上工作(也许您的类路径上有另一个包含这个类的Guice?)2)为什么它不能在您的同事的机器上工作。我建议使用-v启动虚拟机,并尝试找出导致此ClassNotFoundException的原因