Netbeans无法导入FileUtils pacakge



我正在将我的java软件编译为Netbeans IDE 8.2。它使用FileUtils包。

import org.apache.commons.io.FileUtils;

我正在使用FileUtils的以下功能:

FileUtils.copyURLToFile(inputUrl, dest);

它使用Netbeans IDE构建良好,运行良好。

但是,当我使用以下命令单独运行jar文件时:

java -jar myProgram.jar 

我在同一行中得到以下错误:

java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils

我不明白为什么FileUtils没有打包在jar文件中。请帮忙。

这是我的Apache Ant构建文件:

<target name="package-for-store" depends="jar">
<property name="store.jar.name" value="iNetsControlProgramAllOs"/>
<property name="store.dir" value="store"/>
<property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
<echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
<delete dir="${store.dir}"/>
<mkdir dir="${store.dir}"/>
<jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
<zipgroupfileset dir="dist" includes="*.jar"/>
<zipgroupfileset dir="dist/lib" includes="*.jar"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
<zip destfile="${store.jar}">
<zipfileset src="${store.dir}/temp_final.jar"
excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>
<delete file="${store.dir}/temp_final.jar"/>

您的jar不包括第三方库,您必须包括它们。

如何构建myProgram.jar?

如果您使用Netbeans本身执行此操作,您可以按照本文档中的"添加必要的库"进行操作。

否则,如果还没有,您可以考虑使用Maven。

编辑: 好的,您正在使用Apache Ant因此,您需要在"构建路径"中包含第三方库,这是您现有行的目标:

<zipgroupfileset dir="dist" includes="*.jar"/>
<zipgroupfileset dir="dist/lib" includes="*.jar"/>

你能检查一下提供FileUtils的第三方Jar文件在哪里吗?

我想它不在dist下,也不在dist/lib下。

此外,您应该将语法更改为以下内容:

<zipgroupfileset dir="dist/lib" includes="**/*.jar"/>

为了确保dist/lib的每个子目录中的所有库都是一个。

如果你需要进一步的解释,请告诉我。

最新更新