Как собрать jar
Написал небольшую програму для десктопа на TornadoFX . Не могу понять как сгенерить jar в IntellJ Idea . Пробовал стандартный способ с генерацией обычного jar -артифакта но они не запускаються( linux говорит что нет манифеста, хотя он был). Опыта с JavaFX и TornadoFX не имел ранее, поэтому прошу любой помощи.
Отслеживать
задан 8 фев 2019 в 12:01
1,360 1 1 золотой знак 9 9 серебряных знаков 21 21 бронзовый знак
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
В IntelIJ с помощью комбинации клавиш CTRL+ALT+SHIFT+S попадаем в структуру проекта. Заходим в пункт Artifacts Нажимаем на Add (зеленый плюс), выбираем JAR и пункт from modules with dependencies. В выплывающем окне выбираем главный класс. Жмем ОК, закрываем окно. Выскочит еще одно окно, в котором нажимаем Apply, закрываем это окно. Настройка закончена. Идем в пункт Build Выбираем Build Artifact, затем Build.
Исполняемый файл будет сгенерирован в директории out / Artifacts. Могут возникнуть проблемы если в проекте есть import какого-либо пакета. но этого импорта нет в classpath Если JAR не запускается, войдите в структуру проекта, пункт Modules -> Dependencies -> Add -> Project Libruary -> Attach JAR
Если вдруг Ваше приложение консольное, и Вы хотите запускать его не через консоль, нужно будет создать bat-файл в котором прописать следующую команду
java -jar filename.jar И запускать уже файл.bat.
Создание JAR-файла Java из файлов класса
Сведения о том, как упаковывать файлы класса в JAR-файл при использовании расширений языка SQL Server для выполнения кода Java. Рекомендуется упаковывать файлы.
Создание JAR-файла
Чтобы создать JAR-файл из файлов класса, перейдите в папку с файлом класса и выполните следующую команду:
jar -cf *.class
Убедитесь, что путь к jar.exe включен в системную переменную PATH. Либо укажите полный путь к этому файлу, который расположен в подпапке /bin папки JDK. Пример:
C:\Users\MyUser\Desktop\jdk1.8.0_201\bin\jar -cf *.class
Дальнейшие действия
JAR-Файлы
Для удобства распространения приложения, в Java существует такой механизм как JAR (Java Archive) файлы. JAR-файлы используются для архивации и сжатия данных.
Базовый формат команды для создания JAR-файла такой:
jar -cf jar-файл входной-файл(ы)
Сгерированный JAR-файл будет помещен в текущий каталог.
Рассмотрим ключи и аргументы, использованные в этой команде:
- Ключ c показывает, что необходимо создать (create) JAR-файл.
- Ключ f показывает, что необходимо направить вывод в файл, а не в стандартный поток вывода.
- jar-файл — это имя, которое необходимо дать результирующему JAR-файлу. Вы можете использовать любое имя для JAR-файл. По соглашению, имени JAR-файла дается расширение .jar, хотя это и необязательно.
- Аргумент входной-файл(ы) — список с разделителем пробелом из одного или более файлов, которые вы хотите поместить в ваш JAR-файл. Аргумент входной-файл(ы) может содержать также символ джокер *. Если любые из входных файлов являются каталогами, содержимое этих каталогов рекурсивно добавляется в архив JAR.
Правила относительно структуры JAR-файла.
- Команда jar автоматически создаст META-INF каталог.
- Команда jar автоматически создаст MANIFEST.MF и поместит его в META-INF каталог.
- Сохраняется точная структура каталогов.
- Команды java и javac могут использовать JAR-файл как нормальное дерево каталогов.
- Поиск JAR-файлов с помощью ключа -cp аналогичен поиску пакетных файлов. Единственная разница — путь к JAR-файлу должен содержать имя JAR-файла (например classes/project1.jar).
Рассмотрим на примере как создаются и используются JAR файлы.
Допустим, что наше приложение имеет следующую структуру каталогов:

Создадим JAR-файл project1.jar, который будет содержать пакеты first и second :
cd project1/classes jar –cf project1.jar first second
Можем просмотреть содержимое project1.jar файла с помощью следующей команды:
jar -tf project1.jar
Результат выполнения будет приблизительно такой:
META-INF/ META-INF/MANIFEST.MF first/ first/Example1.class second/ second/Example2.class
Перенесем созданный project1.jar файл в каталог lib и запустим на выполнение программу first.Example :
cd lib java -cp project1.jar first.Example1
Презентацию с видео можно скачать на Patreon .
Сборка JAR-файлов в IntelliJ IDEA
В процессе работы с Java и средой разработки IntelliJ IDEA часто возникает необходимость создания JAR-файлов. Это архивные файлы, содержащие все компоненты вашего приложения, включая скомпилированные классы, ресурсы, манифест и дополнительные библиотеки.
Допустим, есть проект, состоящий из одного модуля и нескольких зависимостей. Предположим, что требуется создать JAR-файл, который будет содержать скомпилированный модуль, а также все зависимости. Однако при попытке собрать JAR-файл в IntelliJ IDEA, выходит так, что модуль оказывается пустым, кроме файла META-INF .
Сборка JAR в IntelliJ IDEA
Вот пошаговый процесс, описывающий, как можно правильно создать JAR-файл в IntelliJ IDEA:
Шаг 1: Создание артефакта
Для начала необходимо создать артефакт JAR в IntelliJ IDEA. Это можно сделать, перейдя в меню File > Project Structure > Artifacts . Затем следует нажать на плюс и выбрать «JAR» из выпадающего списка. Далее следует выбрать «From modules with dependencies».
Шаг 2: Указание модуля и пути к главному классу
После этого IntelliJ IDEA запросит модуль и путь к главному классу для вашего JAR-файла. Здесь следует выбрать модуль и указать путь к главному классу, который будет запущен при выполнении JAR-файла.
Шаг 3: Добавление зависимостей
Затем IntelliJ IDEA автоматически добавит все файлы и библиотеки, необходимые для работы вашего приложения, в JAR-файл. Если требуется добавить дополнительные библиотеки или файлы, их можно добавить вручную, перетащив в область артефакта.
Шаг 4: Сборка артефакта
После того, как все настроено, можно собрать артефакт, выбрав Build > Build Artifacts и выбрав ваш артефакт для сборки.
После выполнения этих шагов в указанном каталоге должен появиться JAR-файл, содержащий все необходимые для работы приложения файлы. Если при запуске полученного JAR-файла возникают проблемы, возможно, требуется проверить пути к библиотекам и классам в настройках артефакта.