java eclipse создать исполняемый jar

Я использовал Eclipse для создания исполняемого фляги. Это полагается на внешние банки.
В Eclipse, это просто, что вам просто нужно выбрать Extract required libraries into generated JAR,
Вы можете создать исполняемый файл. Это может быть выполнено в любых местах, где установлена ​​JRE.

Но если я использую командную строку для компиляции jar.
javac -classpath [external jars] *.java
jar cfm [a name].jar manifest *.class [external jars]

Это может генерировать банку. Но баночка может быть выполнена только в той директории, где она создана. Если я помещаю его в другой каталог или машину, он жалуется NoClassDefFoundError,

Итак, мой вопрос заключается в том, как я могу создать исполняемый файл JAR, используя командную строку в качестве Eclipse.

3 ответа

Решение

Файл jar не может иметь внутри jar зависимостей. В случае Eclipse он распакует все классы из jar-зависимостей и объединит его в ваш единственный jar-файл вместе с вашими файлами классов. Если не в пути затмения, вам нужно

1) Создайте файл манифеста, в котором перечислены все банки зависимостей

Manifest-Version: 1.0
Main-Class: Your Main class
Class-Path: dependency1.jar dependency2.jar dependency3.jar
 dependency4.jar dependency5.jar

2) Создайте свой jar с файлами классов, используя путь к классу, включая все jar-файлы зависимостей, и используя созданный выше файл mainfest.

3) В этой же папке, где вы создали свой jar-файл, поместите все jar-файлы зависимостей.

Теперь ваша папка будет выглядеть так,

yourjar.jar (с файлом манифеста, который вы создали выше) зависимость.jar зависимость.jar зависимость.jar зависимость.jar зависимость.jar

4) Теперь, если вы хотите поделиться этим, вам нужно поделиться этой папкой, и вы можете запустить свой jar из этой папки. Это ваша исполняемая папка, и вы можете запустить ее из любого места.

Eclipse использует Ant для упаковки jar-файла, вы можете сохранить ant-скрипт, который eclipse использует для генерации jar, отметив флажок Save Ant File в окне экспорта:

Скриншот

Таким образом, вы можете сгенерировать скрипт Ant Build.xml, а затем выполнить его, используя ant прямо из командной строки, без необходимости использовать eclipse.

Мой предпочтительный метод создания исполняемого файла jar - использовать утилиту one-jar. У меня есть пост в блоге, обсуждающий, как использовать его в maven и ant: мой пост в одном банке

Другие вопросы по тегам