我已将一段sharepoint代码添加到现有的java文件中,该文件正在编译并正常工作。编写的sharepoint代码使用一些外部库。现在我需要通过ANT将外部库添加到现有项目中。
我在build.xml文件中做了一些修改,因此解决了所有编译错误。但是当代码执行时,我收到一条错误消息“java.lang.NoClassDefFoundError:net / entropysoft / eci / spi / IContentProviderFactory”。请帮我解决这个错误。
另外,请告诉我build.xml文件中需要添加哪些内容来解决错误。 所有jar文件都出现在“externallibs”目录中
谢谢, Rajath
答案 0 :(得分:2)
运行应用程序时,您需要在类路径中包含所有jar:
java -cp externallibs/* com.foo.bar.Main
如果它是Java EE Web应用程序,则构建过程应将所有这些jar复制到生成的Web应用程序结构的WEB-INF/lib
文件夹中。
答案 1 :(得分: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。