2014-01-22 82 views
0

我有一個在Eclipse中正常運行的項目。但是,在將它導出到jar(可執行jar和常規jar)時,運行它時會出現上述異常。我的類路徑包含:org/apache/commons/io/FileUtils - NoClassDefFoundError

<?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。

爲什麼會發生這種情況?

+1

因爲公地IO不在類路徑中。我的意思是當你運行jar時,eclipse classpath不是你的java類路徑 – 2014-01-22 07:47:39

+0

@RC但是FileUtils.class在commons-io-2.4.jar – Shmoopy

+0

@RC我沒有關注。我應該導出另一個我沒有加入的jar文件嗎? – Shmoopy

回答

0

將commons-io庫添加到jar的類路徑中。請注意,當您使用代碼創建jar時,鏈接庫不包含在其中,並且需要位於jar的類路徑中。例如,如果commons-io位於Eclipse中的libs文件夾中,則需要將包含所需庫的libs文件夾與jar文件一起分發。