2010-08-17 44 views
0

我的ANT腳本在我的Linux機器和某些xp虛擬機上運行時沒有問題。當另一個工程師試圖在本地啓動它時,TestNG拋出[testng]引起:java.lang.ClassNotFoundException:com.google.inject.internal.asm.util.TraceClassVisitor找不到(我的庫都在這裏)TestNG對我很好,但爲其他工程師拋出com.google.inject.internal.asm.util.TraceClassVisitor classnotfoundexception

我從來沒有見過這個類,不知道是什麼原因導致它只發生在他的機器上。我試過導入asm-util-3.1.jar,但它沒有找到它,因爲它看起來在com.google.internal.asm.util而不是org.objcetweb.asm.util。

回答

0

它看起來像是一個與Guice或Asm相關的問題。您是否在使用TestNG和Maven或從http://testng.org直接下載的jar文件?

Maven版本只包含TestNG類,並讓Maven下載所有其他依賴項。

jar文件包含所有的依賴關係,包括guice.jar,所以如果你已經在你的環境中使用不同版本的Guice,這可能會導致衝突。

+0

使用testng.org的jar文件,其他機器運行得很好。他沒有長時間在他的機器上使用Java,也不認爲他有意地安裝了Guice。它還能從他的機器上傳出來。 – dhackner 2010-08-17 22:29:30

+0

這個類不屬於testng-5.12.1.jar中包含的Guice的一部分,所以我們有兩件事要調查: 1)爲什麼它在你的機器上工作(也許你的classpath中有另一個Guice包含這個類)? 2)爲什麼它不適用於你的同事。我建議使用-v啓動虛擬機,並嘗試找出導致此ClassNotFoundException的原因 – 2010-08-18 04:53:24

0

原來,雖然他安裝了正確版本的Java,並且指出了他的環境,但在Java的.conf文件的深處,有一個參考(JVM_ROOT)指向舊版本的1.5版本。感謝塞德里克的幫助!吉斯2.0有 -

testng java.lang.noclassdeffounderror: com/google/inject/internal/Lists 

這看起來似乎是在 都可以從類路徑裝入吉斯的版本的差異:

1

我們使用Eclipse TestNG插件時,得到了類似的錯誤類以上 而在吉斯3.0似乎已經轉移到:

com/google/inject/internal/util/Lists 

TestNG的Eclipse插件的更新版本解決了這一問題。

相關問題