Подтвердить что ты не робот

Netbeans Export to Jar включает все файлы библиотек

Что мне действительно нужно является эквивалентом этого из Eclipse с Netbeans:

enter image description here

Я хочу Extract required libraries into generated JAR, чтобы я мог распространять его без необходимости включать в него папку lib.

Вот оригинальный вопрос.

Я пытаюсь построить банку из Netbeans, которая будет упаковывать в нее все файлы библиотеки. Я слышал, что это возможно с помощью Eclipse, выбрав "Экспорт". Если Netbeans, если я "Clean and Build", он создаст исполняемую банку в папке dist, но все библиотеки, от которой она зависит, находятся в папке lib. Мне нужно, чтобы все было в одном файле jar. Я думаю, что это связано с файлом build.xml. Вот что говорит моя. Что я здесь не так понял?

Спасибо за помощь.

<?xml version="1.0" encoding="UTF-8"?>
<project name="BONotifier" default="default" basedir=".">
  <description>Builds, tests, and runs the project BONotifier.</description>
  <import file="nbproject/build-impl.xml"/>
  <target name="-post-jar">
    <jar jarfile="dist/Combined-dist.jar">
      <zipfileset src="${dist.jar}" excludes="META-INF/*" />
      <zipfileset src="lib/commons-io-1.4.jar" excludes="META-INF/*" />
      <manifest>
        <attribute name="Main-Class" value="controller.MainController"/>
      </manifest>
    </jar>
  </target>
</project>

Обновить: приведенный выше код находится в файле build.xml. В build-impl.xml приведено следующее. Я предполагаю, что это означает, что build.xml запускается во время build-impl.xml.

<target name="-pre-init">
    <!-- Empty placeholder for easier customization. -->
    <!-- You can override this target in the ../build.xml file. -->
</target>

Примечание Я получил это от forum.

4b9b3361

Ответ 1

Я предпочитаю это решение, так как загружать нечего, все на основе Ant build (~ 20 строк). Таким образом, нет никакой дополнительной зависимости, чтобы беспокоиться. Если у вас есть несколько минут, вы также можете узнать о Ant.

Кажется, что ссылка на оригинальную статью нарушена (спасибо Oracle). Вот еще ссылка.

Оригинальная статья также доступна из Oracle ссылка.

Ответ 2

  • Откройте сгенерированную банку с помощью 7zip (или других инструментов).
  • Добавить библиотеку jar в папку
  • Отредактируйте манифест для установки пути к классу

Ответ 3

Хорошо, так это мое решение. У меня тоже была проблема с моей компиляцией и запуском программы на Netbeans, но она не срабатывала, когда я пробовал Java -jar MyJarFile.jar. Теперь я не совсем понимаю Maven, и я думаю, что это вызвало проблемы с тем, что Netbeans 8.0.2 включил мою банку файл в библиотеке, чтобы поместить их в файл jar. Я думал о том, как я использовал файлы jar без Maven в Eclipse.

Это Maven, который собирает все зависимости и плагины. Не Netbeans. (Если вы можете заставить Netbeans сделать это, сообщите нам, как (^. ^) V)

[Решено - для Linux], открыв терминал.

Тогда

cd/MyRootDirectoryForMyProject

Далее

mvn org.apache.maven.plugins: maven-compiler-plugin: компилировать

Далее

mvn install

Это создаст файл jar в целевом каталоге.

MyJarFile-1,0-банку-с-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

Я отправлю это решение на пару других страниц с аналогичной проблемой. Надеюсь, я смогу спасти кого-нибудь из недели разочарования.

Ответ 4

Там нет встроенного способа сделать это. Однако вы можете использовать внешние инструменты для архивирования, например OneJar:

http://one-jar.sourceforge.net/

Edit: По-видимому, это даже то, как команда Netbeans ожидает, что вы это сделаете: http://wiki.netbeans.org/PackagingADistributableJavaApp