0

我的 ANT 脚本在我的 linux 机器和一些 xp VM 上运行没有问题。当另一个工程师试图在本地启动它时,TestNG 抛出 [testng] Caused by: java.lang.ClassNotFoundException: com.google.inject.internal.asm.util.TraceClassVisitor not found in(我的库都在这里)

我以前从未见过这门课,也不知道是什么原因导致这种情况只发生在他的机器上。我已经尝试导入 asm-util-3.1.jar 但它没有找到它,因为它看起来在 com.google.internal.asm.util 而不是 org.objcetweb.asm.util 中。

4

3 回答 3

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 插件的更新版本解决了这个问题。

于 2011-08-10T06:35:38.823 回答
0

事实证明,虽然他安装了正确的 Java 版本并由他的环境指出,但在 Java 的 .conf 文件的深处,有一个对旧的 1.5 安装的引用 (JVM_ROOT)。感谢塞德里克的帮助!

于 2010-08-19T17:45:28.177 回答
0

它看起来确实是与 Guice 或 Asm 相关的问题。你是使用 Maven 的 TestNG 还是直接从http://testng.org下载的 jar 文件?

Maven 版本仅包含 TestNG 类,并让 Maven 下载所有其他依赖项。

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

于 2010-08-17T21:31:52.530 回答