Я использую некоторые apache httpClient jars, поэтому я помещаю их в каталог проекта lib, когда Netbeans компилирует проект, он копирует lib и генерирует jar проекта в каталог dist, но когда я запускаю свой проект с помощью webstart, Мне нужно скопировать проект jar и lib в каталог tomcat ROOT. Интересно, может ли Netbeans генерировать проектную банку, которая включает все банки в каталоге lib, поэтому мне не нужно копировать проект jar и lib dir в tomcat ROOT реж. Может ли Netbeans это сделать?
Как включить банки в lib в файл jar проекта в Netbeans?
Ответ 1
ОК, нашел ответ на следующем сайте: http://arunasujith.blogspot.com/2011/08/how-to-build-fat-jar-using-netbeans.html
Ответ 2
Это очень легко упаковать каждую зависимую библиотеку (*.jar) в один файл myProject.jar.
Просто выполните следующие действия, и вы, наконец, упакуете каждую зависимую библиотеку в одну банку. Если вы используете NetBeans, вы можете точно следовать, или вам нужно найти файл build.xml в файлах проекта.
Для редактирования build.xml
выполните следующие действия:1) Нажмите на Files tab
в левой части панели проекта в NetBeans.
2) Дважды щелкните файл build.xml
и добавьте в него эти строки непосредственно перед </project>
line
<target name="package-for-store" depends="jar">
<property name="store.jar.name" value="myProject"/>
<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"/>
</target>
3) Измените value
во второй строке кода в соответствии с вашим именем проекта
<property name="store.jar.name" value="myProject"/> //<---Just value not name
4) Сохраните его и щелкните правой кнопкой мыши по build.xml и выберите Запустить цель, а затем Другие цели и, наконец, нажмите Пакет-для-магазина
5) И вот вы сделали. Теперь вы можете пойти и проверить, как в папке dist
будет папка store
, в которой будет содержаться ваша окончательная полная банка, включая все ваши зависимые библиотеки. Теперь, когда вы хотите изменить/добавить больше библиотек или просто, просто выполните шаг 4.
Изображение для шага 4
Ответ 3
Роберт Эккштейн описывает решение для этой проблемы. Вам просто нужно вставить следующий код в build.xml
. Все библиотеки найдены автоматически.
Здесь мы идем:
<target name="-post-jar">
<!-- Change the value to the name of the final jar without .jar -->
<property name="store.jar.name" value="MyJarName"/>
<!-- don't edit below this line -->
<property name="store.dir" value="dist"/>
<property name="temp.dir" value="temp"/>
<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="${temp.dir}"/>
<mkdir dir="${temp.dir}"/>
<jar destfile="${temp.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>
<delete dir="${store.dir}"/>
<zip destfile="${store.jar}">
<zipfileset src="${temp.dir}/temp_final.jar"
excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>
<delete dir="${temp.dir}"/>
</target>
-
Перейдите в свой файл build.xml и добавьте код прямо перед тегом закрывающего проекта в конце.
-
Теперь измените значение поля firsttiy как комментарий
-
Нажмите "Очистить" и "Создать", и ваша банка будет находиться в папке dist
Ссылка ссылки: fooobar.com/questions/236011/...
Ответ 4
- проверить главный файл MainClass обновлен как основной файл в свойствах > запустить
- Обновить Build.xml со следующим кодом до закрытия тега проекта
<!-- Change the value to the name of the final jar without .jar -->
<property name="store.jar.name" value="MyJarName"/>
<!-- don't edit below this line -->
<property name="store.dir" value="dist"/>
<property name="temp.dir" value="temp"/>
<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="${temp.dir}"/>
<mkdir dir="${temp.dir}"/>
<jar destfile="${temp.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>
<delete dir="${store.dir}"/>
<zip destfile="${store.jar}">
<zipfileset src="${temp.dir}/temp_final.jar"
excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>
<delete dir="${temp.dir}"/>
- Свойствa > упаковкa > отметьте все
- очистить и построить
- Загрузка на сервер.
Ответ 5
Итак, это мое решение. У меня тоже была проблема с компиляцией и запуском моей программы на NetBeans, но она java -jar MyJarFile.jar
когда я попробовал java -jar MyJarFile.jar
. Теперь я не до конца понимаю Maven, и думаю, именно поэтому у меня возникли проблемы с тем, чтобы Netbeans 8.0.2 включил мой jar файл в библиотеку, чтобы поместить их в jar файл. Я думал о том, как я использовал файлы JAR без Maven в Eclipse.
Это Maven, который компилирует все зависимости и плагины, а не Netbeans. (Если вы можете заставить Netbeans сделать это, расскажите, пожалуйста, как.)
[Решено - для Linux], открыв терминал.
затем
cd /MyRootDirectoryForMyProject
следующий
mvn org.apache.maven.plugins:maven-compiler-plugin:compile
следующий
mvn install
Это создаст файл JAR в целевой директории.
MyJarFile-1.0-jar-with-dependencies.jar
Сейчас
cd target
(Вам может потребоваться выполнить: chmod +x MyJarFile-1.0 -jar -with-dependencies.jar) И, наконец,
java -jar MyJarFile-1.0-jar-with-dependencies.jar
Посмотри пожалуйста
https://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException
Ответ 6
Обычно я никогда не замечаю в онлайн-журналах, но ваша статья убедительна до такой степени, что я никогда не перестаю говорить что-то об этом. Ты отлично справляешься, чувак, так держать. "Бронирование отелей" "Онлайн бронирование авиабилетов" "Дешевое бронирование отелей онлайн" "Онлайн бронирование отелей со скидками" "Бронирование отелей со скидками" "Услуги бронирования отелей" "Авиабилеты со скидкой" "Доступные пакеты отдыха" "Доступные пакеты для медового месяца"