[英]java Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
[英]org/apache/commons/io/FileUtils - NoClassDefFoundError
我有一个在Eclipse中运行良好的项目。 但是,将其导出到jar(可执行jar和常规jar)时,运行它时出现上述异常。 我的类路径包含:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="lib" path="libs/commons-io-2.4.jar"/>
<classpathentry kind="lib" path="libs/commons-math3-3.2-javadoc.jar"/>
<classpathentry kind="lib" path="libs/commons-math3-3.2.jar"/>
<classpathentry kind="lib" path="libs/Jama-1.0.3.jar"/>
<classpathentry kind="lib" path="libs/jcommon-1.0.21.jar"/>
<classpathentry kind="lib" path="libs/jfreechart-1.0.17.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
如您所见,第三个条目是正确的lib。
为什么会这样?
将commons-io库添加到jar的类路径中。 请注意,当使用代码创建jar时,链接库不包含在其中,并且需要位于jar的类路径中。 例如,如果commons-io位于Eclipse的libs文件夹中,则需要使用jar文件分发一个包含所需库的libs文件夹。
jar内的META-INF文件夹中是否有manifest.mf文件? 在清单中,您可以设置类路径
http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html
或者您可以在所有依赖项中创建一个jat,我建议将Maven与Shade插件一起使用
http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.