繁体   English   中英

org / apache / commons / io / FileUtils-NoClassDefFoundError

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM