2011-08-29 56 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中。