IntelliJ IDEA дает возможность быстро создавать исполняемый JAR-файл вашей программы, содержащий модули со всеми зависимостями.
Смотрим видео-инструкцию или следуем пунктам ниже:
Для того, чтобы создать JAR, необходимо проделать всего 3 пункта:
1. Нажмите кнопку ‘+’ в диалоговом окне Project Structure и выберите соответствующий пункт (Рисунок 1):
Рисунок 1 — Project Structure -> Artifacts -> Jar -> From modules with dependencies
2. Далее IntelliJ IDEA показывает диалог, позволяющий настроить новый артефакт (Рисунок 2):
Здесь нужно выбрать главный класс вашего проекта и нажать ОK
Рисунок 2 — Диалог создания нового артефакта JAR
3. После нажатия клавиши ОК, вы можете создать файл Jar с помощью пункта меню Build -> Build Artifact
По умолчанию все библиотеки будут извлечены в целевой Jar. Сам исполняемый файл будет сгенерирован в директории out -> artifacts вашего проекта (Рисунок 3)
Рисунок 3 — Месторасположение сгенерированного JAR файла
Все, теперь исполняемый файл можно запускать.
Спасибо! Хоть одно нормальное объяснение во всем интернете.
Создал по Вашей инструкции jar-файл, но при запуске его выскакивает ошибка «A JNI Eerror has occurred, please check your installation and try again.» Знаете как ее исправить ?
Эта ошибка может возникнуть когда Вы добавляете какую-то библиотеку, например, json.jar в проект, но не добавляете в ее в classpath. Для этого попробуйте зайти в Project Structure, выбрать Modules, найти там Dependencies и далее Add… → Project Library → Attach Jar
А как создать файл, чтобы его можно было запустить на системе без установленной java-машины?
Для этого Вам понадобиться jPortable вместе с jPortable Launcher. Они содержат портативный JRE и позволяют запускать программы без предустановленной Java
Добрый день. Написал проект в Intelj Idea на javaFX. Есть одна подключенная библиотека, в среде работает отлично. При сборке делаю точь в точь как описано в статье. Создается один ja-rник (больше никаких файлов нет, кроме как в src появляется META-INF). Пробую запустить файл 2-мя щелчками и «открыть с помощью» -> jre -> bin -> java.exe. На что файл никак не реагирует и не выдает никаких ошибок.
Для интереса создавал приложение с одного класса и без библиотек — оно компилируется и запускается на раз-два. Подскажите, пожалуйста, в чем может быть проблема и как ее убрать?
Нашел проблему. Нужно делать именно как описано в статье. Там загвоздка заключалась в следующем:
При загрузке fxml файла я указывал:
FXMLLoader mainLoader = new FXMLLoader();
mainLoader.setLocation(getClass().getResource(«../fxml/main.fxml»));
в следствии чего при загрузке файла бросался exception: IllegalStatException: Location is not set.
Пришлось перемещать fxml файл в один пакет с загрузчиком и указывать :
mainLoader.setLocation(getClass().getResource(«main.fxml»));
Программа запускается и работает корректно.
Подскажите как прописывать правильно путь, если я все таки хочу размещать fxml файлы в отдельном пакете?
нашел ответ:
mainLoader.setLocation(getClass().getResource(«/com/javaFX/myprograms/phoneBook/fxml/main.fxml»));
где «/com/javaFX/myprograms/phoneBook/fxml/edit.fxml» — последовательная вложенность ВСЕХ пакетов в проекте.
Забавно у меня такая же проблема, прописал всё так же и.. не запускается, но самое интересное в том, что джар файл спокойно запускается через ту же идею, а при простом клацании на файлик ничего не выходит, такой бред.
Ах да, забыл отписаться, проблема была в том, что я обращался к файлам внутри jar-a, а для этого нужно совсем другие методы.
Добрый день. У меня настроено создание jar-файла через artifacts в idea c библиотеками и зависимостями. Мне нужно buildить этот jar c помощью командной строки cmd (bat), а не через idea. Возможно ли как-то получить из Idea этот скрипт?
Здравствуйте! К сожалению, способа получить скрипт из idea я не знаю. Скорее всего вам придется все делать через командную строку (добавить зависимости и собрать jar).
Если у вас maven проект, то это может упростить вам жизнь и собрать проект будет довольно просто — просто добавьте следующий код в pom.xml (внесите свои изменения):
Создать исполняемый Jar с библиотеками-зависимостями, следуйте такой инструкции:
(будем считать, что в зависимостях у вас библиотеки commons)
Запустите cmd и выполните следующие команды — не забудьте указать свой путь к библиотекам:
Теперь создайте manifest.txt с таким наполнением:
Теперь убедитесь в том, что JDK_HOME\bin находится в PATH и соберите все это в jar:
Дальше запускаем: