NetBeans не может импортировать FileUtils pacakge? - PullRequest
0 голосов
/ 04 декабря 2018

Я компилирую свое Java-программное обеспечение как Netbeans IDE 8.2 .Он использует пакет FileUtils.

 import org.apache.commons.io.FileUtils;

Я использую нижеприведенную функцию из FileUtils:

 FileUtils.copyURLToFile(inputUrl, dest);

Он прекрасно работает и отлично работает с помощью IDE Netbeans.

Однако,когда я запускаю файл 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"/>

1 Ответ

0 голосов
/ 04 декабря 2018

Ваш jar не включает сторонние библиотеки, вы должны включить их.

Как вы строите свой myProgram.jar?

Если вы выполняете это с самим Netbeans, вы можете следовать«Добавление необходимых библиотек», в этой документации .

В противном случае, если это не так, вы можете рассмотреть возможность использования Maven .

Редактировать: ОК, вы используете Apache Ant Итак, вам нужно включить сторонние библиотеки в "путь сборки", который является целью ваших существующих строк:

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

Можете ли вы проверить, где находится ваш Jar-файл стороннего производителя, предоставляющий FileUtils?

Я думаю, он НЕ находится под dist, либо dist / lib.

Кроме того,Вы должны изменить синтаксис на что-то вроде:

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

Чтобы обеспечить ВСЕ библиотеки во всех подкаталогах dist / lib one.

Дайте мне знать, если вам нужны дополнительные объяснения.

...