2011-08-29 60 views
1

我已經將一段sharepoint代碼添加到正在編譯並正常工作的現有java文件中。編寫的sharepoint代碼使用了一些外部庫。現在我需要通過ANT將外部庫添加到現有項目中。需要幫助將所有jar文件包含到現有項目的目錄中

我已經在build.xml文件中做了一些修改,因此解決了所有的編譯錯誤。但是,當代碼執行時,我收到一條錯誤消息,指出「java.lang.NoClassDefFoundError:net/entropysoft/eci/spi/IContentProviderFactory」。請幫我解決這個錯誤。

另請讓我知道需要在build.xml文件中添加什麼來解決錯誤。 所有的jar文件存在於目錄「externallibs」

感謝, Rajath

回答

2

你需要將所有的罐子在classpath中運行應用程序時:

java -cp externallibs/* com.foo.bar.Main 

如果它是一個Java EE Web應用程序中,構建過程應將所有這些jar複製到生成的Web應用程序結構的WEB-INF/lib文件夾中。

+0

請讓我知道如何設置類路徑? – Rajath

+0

它的答案是:-cp externallibs/*包含類路徑中所有externallib的.jar文件。如果你在其他地方有另一個jar,使用-cp /path/to/other.jar:externallibs/*.jar。在Windows上,使用;作爲分隔符代替:和\而不是/。 –

0

java.lang.NoClassDefFoundError: net/entropysoft/eci/spi/IContentProviderFactory並不表示未找到類別net.entropysoft.eci.spi.IContentProviderFactory。這意味着在該類中使用的類在類路徑中的任何位置都找不到。當類加載器試圖加載類但它不能正確地初始化類定義時會引發此錯誤。

要解決此問題,您需要查看類別net.entropysoft.eci.spi.IContentProviderFactory的源代碼(通常位於導入部分),並確定缺少的Java類以及缺少的類所在的庫。一旦您知道了您可以使用JB Nizet的答案將該庫添加到您的類路徑中。如果您從IDE運行它,則需要將該庫添加到build.xml中。