jar

Создаем исполняемый jar в Intellij IDEA

IntelliJ IDEA дает возможность быстро создавать исполняемый JAR-файл вашей программы, содержащий модули со всеми зависимостями.

Для того, чтобы создать JAR, необходимо проделать всего 3 пункта:

1. Нажмите кнопку ‘+’ в диалоговом окне Project Structure и выберите соответствующий пункт (Рисунок 1):

1

Рисунок 1 — Project Structure -> Artifacts -> Jar -> From modules with dependencies

2. Далее IntelliJ IDEA показывает диалог, позволяющий настроить новый артефакт (Рисунок 2):

Здесь нужно выбрать главный класс вашего проекта и нажать ОK

2

Рисунок 2 — Диалог создания нового артефакта JAR

3. После нажатия клавиши ОК, вы можете создать файл Jar с помощью пункта меню Build -> Build Artifact

По умолчанию все библиотеки будут извлечены в целевой Jar. Сам исполняемый файл будет сгенерирован в директории out -> artifacts вашего проекта (Рисунок 3)

3

Рисунок 3 — Месторасположение сгенерированного JAR файла

Все, теперь исполняемый файл можно запускать.

10 Комментарии “Создаем исполняемый jar в Intellij IDEA

  1. Создал по Вашей инструкции jar-файл, но при запуске его выскакивает ошибка «A JNI Eerror has occurred, please check your installation and try again.» Знаете как ее исправить ?

    1. Эта ошибка может возникнуть когда Вы добавляете какую-то библиотеку, например, json.jar в проект, но не добавляете в ее в classpath. Для этого попробуйте зайти в Project Structure, выбрать Modules, найти там Dependencies и далее Add… → Project Library → Attach Jar

  2. А как создать файл, чтобы его можно было запустить на системе без установленной java-машины?

    1. Для этого Вам понадобиться jPortable вместе с jPortable Launcher. Они содержат портативный JRE и позволяют запускать программы без предустановленной Java

  3. Добрый день. Написал проект в Intelj Idea на javaFX. Есть одна подключенная библиотека, в среде работает отлично. При сборке делаю точь в точь как описано в статье. Создается один ja-rник (больше никаких файлов нет, кроме как в src появляется META-INF). Пробую запустить файл 2-мя щелчками и «открыть с помощью» -> jre -> bin -> java.exe. На что файл никак не реагирует и не выдает никаких ошибок.
    Для интереса создавал приложение с одного класса и без библиотек — оно компилируется и запускается на раз-два. Подскажите, пожалуйста, в чем может быть проблема и как ее убрать?

    1. Нашел проблему. Нужно делать именно как описано в статье. Там загвоздка заключалась в следующем:
      При загрузке 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 файлы в отдельном пакете?

      1. нашел ответ:
        mainLoader.setLocation(getClass().getResource(«/com/javaFX/myprograms/phoneBook/fxml/main.fxml»));
        где «/com/javaFX/myprograms/phoneBook/fxml/edit.fxml» — последовательная вложенность ВСЕХ пакетов в проекте.

        1. Забавно у меня такая же проблема, прописал всё так же и.. не запускается, но самое интересное в том, что джар файл спокойно запускается через ту же идею, а при простом клацании на файлик ничего не выходит, такой бред.

          1. Ах да, забыл отписаться, проблема была в том, что я обращался к файлам внутри jar-a, а для этого нужно совсем другие методы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *