Как в java сделать исполняемый файл в

Обновлено: 03.07.2024

JAVA · Создать EXE-файл с помощью пакета JAR (программа exe4j)

потребность:

  • Предпосылка: мы написали исходный код для достижения определенной функции;
  • Теперь нам нужно использовать файл .java, который мы написали, чтобы сгенерировать файл .exe для использования пользователями;
  • Пользователям не нужно устанавливать среду программирования;
  • Если пользователь хочет использовать реализованную вами функцию, просто запустите непосредственно созданный файл .exe.

Необходимые инструменты:

  • программное обеспечение eclipse
  • exe4j программное обеспечение

решение:

  • Общая цель: создать файл .exe и использовать код для выполнения функций.
  • Шаг 1. Используйте eclipse для создания пакета jar с использованием файла .java
  • Шаг 2. Используйте программное обеспечение exe4j для создания исполняемого файла exe с помощью пакета jar

Содержание работы:

(1) Подготовьтесь заранее

Создайте папку для хранения файлов, связанных с вашим приложением

Сначала поместите среду jre, необходимую для запуска в ней исполняемого файла


Затем скопируйте папку lib внешнего пакета jar, требуемую исходным кодом (диаграмма удобна и может быть удалена позже)

Как показано выше, я создал новую папку и добавил две папки, а именно [jre environment] и [lib (папка пакета внешних зависимостей)]

(Я добавил другие в соответствии с моими потребностями, и вы также можете добавить их по мере необходимости)

Вот зачем нам [jre environment]?

имя Включить контент
JDK Комплект разработчика с JRE
JRE Операционная среда, содержащая JVM (необходимые условия для запуска java)
JVM Виртуальная машина JAVA

: Пользователь может не быть разработчиком, и на его компьютере может не быть среды выполнения java, поэтому нам нужно одновременно скопировать [среду выполнения jre] в папку, и только если jre существует, может. Сгенерированный нами exe-файл может нормально выполняться

(2) Первый шаг: создать пакет jar


  • Откройте eclipse, щелкните правой кнопкой мыши созданный проект и выберите [Экспорт].
  • В соответствии со значком выберите для создания [JAR-файл], щелкните [Далее]
  • Согласно значку, щелкните [Далее] сразу после завершения.



Затем выберите основной класс из импортированного пакета, а затем нажмите [Готово], чтобы завершить создание пакета jar.

Описание

Вот дополнительное примечание. Для достижения цели создания пакета jar я также нашел множество методов в Интернете, многие из которых упоминали, что если программа использует внешний пакет jar, вам необходимо создать его.MANIFEST.MFФайл для настройки путей к некоторым ресурсам.

Но преимущества exe4j раскрываются здесь, нам не нужно утомительно создавать и настраиватьMANIFEST.MFFile, просто добавьте необходимый нам внешний пакет jar в программу exe4j, и все в порядке. Мы скажем позже, продолжайте ниже!

(3) Шаг 2. Используйте exe4j для создания файла .exe.

  • Выберите, следует ли загружать исходную конфигурацию, если вам не нужно ее игнорировать



  • Выберите тип, здесь выберите «JAR в EXE»
  • После настройки имени файла и пути вывода файла нажмите [Далее]


Установите согласно рисунку,Обратите внимание, что если вы используете 64-битный jvm, вам нужно выбрать [Дополнительные параметры], чтобы установить еще один шаг, иначе он сообщит:


Щелкните [Дополнительные параметры], выберите [32-разрядный или 64-разрядный].


Затем выберите пункт [Создать 64-битный исполняемый файл]


Затем добавьте банку, как показано на рисунке (Включая пакет jar, созданный исходным кодом, и внешний зависимый пакет jar)

Как видно из рисунка, я добавил два пакета jar, один из которых генерируется исходным кодом, а другой - пакет внешней зависимости jxl.jar.


Выберите главный вход вашей программы в соответствии со значком, затем выберите [Далее]


Выберите номер версии JRE, поддерживаемой программой


Настройте папку JRE, [выберите папку JRE в папке, которую мы создали ранее]

После успешного добавления выберите настройки по умолчанию позже, и те, кому интересно, могут продолжить изучение

Наконец, в этом интерфейсе вы можете сохранить свою конфигурацию и использовать ее в следующий раз, это вариант, с которым мы столкнулись в начале.


(Четыре) конец

  • Посмотрите на папку, которую мы наконец получили


Поскольку в файле .exe уже есть [сгенерированный пакет JAR] и [пакет JAR внешней зависимости], мы можем удалить их.

В соответствии с личными потребностями вы можете добавить в папку файлы с инструкциями или другие необходимые файлы.

После запуска файла .exe вы можете увидеть, что два вышеуказанных файла были удалены, и программа все еще может нормально работать.


(На картинке изображена небольшая программа для автоматического планирования, которую я написал для повышения эффективности работы [Ленивый])

На этом этапе сгенерированную нами исполняемую программу можно скопировать на компьютер пользователя для использования, что удобно и быстро.

В этой статье мы рассмотрим упаковку Maven- проекта в файл Jar . Выясним преимущества и недостатки каждого из подходов, применяемых для создания исполняемого файла.

Конфигурация

Чтобы создать исполняемый файл jar , не требуются дополнительные зависимости. Нам нужно просто создать Java-проект Maven с одним классом и методом main(…) .

В приведенном ниже примере мы создаем Java-класс ExecutableMavenJar. Для этого в файл pom.xml нужно добавить следующие элементы:

Удостоверьтесь в том, что в конфигурации задан тип jar . Теперь можно приступить к реализации каждого из подходов.

Ручная настройка

Для этого мы используем плагин maven-dependency-plugin . Сначала скопируем все необходимые зависимости в указанную папку:

Сначала мы задаем цель copy-dependencies , что указывает Maven скопировать эти зависимости в заданный outputDirectory .

В данном случае мы создадим папку с именем libs внутри каталога сборки проекта (обычно это папка target ).

Затем мы создаем исполняемый файл jar с указанными путями к классам и со ссылкой на зависимости, скопированные на первом шаге:

Наиболее важной частью приведенного выше кода является конфигурация manifest . В ней мы добавляем classpath со всеми зависимостями (папка libs/ ), а также предоставляем информацию о главном классе.

Преимущества и недостатки этого подхода:

Apache Maven Assembly Plugin

Плагин Apache Maven Assembly позволяет объединять выходные данные проекта вместе с зависимостями, модулями, документацией и другими файлами в единый пакет.

Основной целью в плагине сборки является single . Она используется для создания любых сборок. Остальные цели устарели и будут удалены в следующей версии плагина.

Рассмотрим конфигурацию, заданную в файле pom.xml :

Как и при ручной настройке, сначала нужно предоставить информацию о главном классе. Но плагин автоматически скопирует все необходимые зависимости в файл JAR .

В descriptorRefs мы указали имя, которое будет добавлено к имени проекта. В нашем случае – это core-java-jar-with-dependencies.jar.

Apache Maven Shade Plugin

Плагин позволяет упаковывать артефакт в uber-jar , который включает в себя все зависимости, необходимые для запуска проекта. Кроме того, он поддерживает переименование пакетов некоторых зависимостей.

Рассмотрим приведенную ниже конфигурацию:

В этой конфигурации <shadedArtifactAttached> отмечает все зависимости, которые должны быть упакованы в файл jar .

Затем нам нужно указать реализацию трансформатора . В текущем примере мы использовали стандартную версию. В конце задаем основной класс приложения.

One Jar Maven Plugin

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

Рассмотрим приведенную ниже конфигурацию:

Сначала необходимо указать основной класс и прикрепить все зависимости сборки, используя для этого attachToBuild = true .

В One Jar зависимости jar не будут расширены в файловую систему во время выполнения.

Плагин Spring Boot Maven

Плагин позволяет упаковывать исполняемые архивы jar или war и запустить приложение «на месте». Он поддерживает Maven версии 3.2 или выше. Более подробное описание плагина доступно здесь .

Рассмотрим приведенную ниже конфигурацию:

Веб-приложение с исполняемым Tomcat

В последней части статьи мы рассмотрим упаковку автономного веб-приложения в jar -файл. Но для этого понадобится другой плагин.

Чтобы создать jar-файл, запустите man package, который создаст webapp.jar в каталоге target.

Чтобы запустить приложение, просто введите в консоли: java -jar target / webapp.jar и проверьте результат по адресу: localhost:8080/.

Обратите внимание на то, что это последняя версия данного плагина, поддерживающая сервер Tomcat7. Чтобы избежать ошибок, обязательно убедитесь в том, что для зависимости Servlets scope задано значение provided. Иначе во время выполнения jar-файла возникнет конфликт:

Заключение

В этой статье мы рассмотрели несколько способов создания исполняемого jar-файла с помощью различных плагинов Maven. Полную реализацию этого руководства вы сможете найти в проектах, опубликованных на Github:

Как проверить? Чтобы скомпилировать проект в исполняемый файл jar , запустите Maven с помощью команды mvn clean package .

Надеемся, что данная статья помогла разобраться в этой теме.

Дайте знать, что вы думаете по данной теме статьи в комментариях. За комментарии, подписки, дизлайки, лайки, отклики огромное вам спасибо!

Пожалуйста, опубликуйте свои комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, подписки, дизлайки, лайки, отклики!

это совершенно новый вопрос. Я запускаю Eclipse на Ubuntu. Я создал тестовый проект, который я хочу скомпилировать в исполняемый файл (что эквивалентно linux для Windows .файл EXE.) Вот содержание моей программы:

Я хочу знать, как его скомпилировать, а затем как его выполнить из командной строки.

вам нужно создать исполняемый файл JAR. Шаги последуют в ближайшее время.

щелкните правой кнопкой мыши на проекте и выберите файл JAR в разделе экспорт.

enter image description here

введите путь, по которому вы хотите его сохранить. Пример здесь-Windows. Изменение в соответствии с вашей платформой.

enter image description here

Нажмите Кнопку Далее.

enter image description here

изменить поле основного класса по просмотр и выбор местоположения вашего класса, который содержит main метод.

enter image description here

запустить

чтобы запустить файл JAR, откройте оболочку или командную строку и выполните следующую команду:

java -jar path/to/test.jar

в Eclipse выберите Файл, затем экспорт, и вам придется выбрать runnable jar. Кроме того, вам будет предложено выбрать основной класс, MyTest в вашем случае.

учебники Eclipes очень полезны, если вы сделаете учебник "создать приложение Hello World", он проведет вас через процесс настройки проекта, создания приложения и запуска файла jar.

Я хочу знать, как скомпилировать его .

см. другие ответы о том, как заставить Eclipse создать файл JAR.

. а затем, как выполнить его из командной строки.

в простом случае вы выполняете его, запустив java -jar yourApp.jar <args> .

Если ваше приложение зависит от внешних библиотек, то это немного сложнее .

Как я мог бы выбрать файл jar над исполняемым jar файл?

  • потому что файл JAR переносим, а двоичный исполняемый файл-нет.
  • потому что JIT скомпилированный код работает быстрее, чем код, который компилируется заранее.
  • потому что стандартная цепочка инструментов Java не поддерживает создание двоичных исполняемых файлов. То же самое для Eclipse, AFAIK.

отмеченное решение не работает. Вместо этого используйте банку "runnable", а затем java -jar <jarfile>

Пользователям Windows привычнее использовать исполняемое приложение в виде exe-файла, нежели архивного jar-файла. Разработчики настольных java-приложений могут плагином launch4j не только обернуть исполняемый архивный jar-файл в оболочку exe-файла, но и включить в него иконку, автора, версию. Также данный плагин позволяет определить минимальную версию используемой JRE. В данной статье рассмотрим использование maven-плагина launch4j для получения exe-файла.

Описание java-примера

В качестве java-примера используем pluggable решение, включающее несколько jar-файлов. На следующем скриншоте представлена структура нашего экспериментального примера. Три файла, выделенные красным прямоугольником и относящиеся к задаче создания исполняемого exe-файла, рассматриваются ниже.


Несколько слов о структуре примера. Описание с исходными кодами данного java-примера представлено на странице Pluggable решение. Желающие могут поближе познакомиться с технологией динамической загрузки jar-файлов (классов), открыв страницу с подробным описанием исходников. На «выходе» данного примера получаем главный исполняемый модуль plugin-loader.jar, который использует common/plugin-api.jar для загрузки при необходимости (вызове) плагинов plugins/hello1.jar и plugins/hello2.jar.

Графический интерфейс примера, представленный на следующем скриншоте, включает 2 кнопки с надписями 'Plugin1' и 'Plugin2'. При нажатии на одну из кнопок приложение подгружает необходимый плагин, который меняет надпись на кнопке.


Изменения в исходных кодах

Необходимо отметить, что в модули PluginLoader.java и Boostrap.java были внесены изменения. Так в PluginLoader.java добавлена метка JLabel с отображением в интерфейсе версии Java :

В класс Boostrap.java внесены изменения, связанные с чтением классов (*.class) из jar'ника, а не из директории bin, как это представлено в исходных кодах. Если этого не сделать, то придётся с собой ещё «таскать» и директорию bin с class'ами.

Листинг класса Boostrap.java

В главный класс Boostrap внесены изменения определения url : ниже исходной закомментированной строки размещается код определения url в jar-файле.

Оборачивание исполняемого jar в exe-файл

Обычно плагин maven.plugins.launch4j включают в проектный pom.xml файл, в котором формируется и исполняемый jar-файл. Поскольку основная цель данной статьи наглядно продемонстрировать возможность оборачивания jar в exe, то уберем из проектного pom.xml все лишнее, что связано с формированием jar-файла. Правильнее сказать создадим такой pom.xml, который и будет решать основную задачу оборачивания jar в exe.

На следующих скриншотах представлены вкладки свойств созданного PluginLoader.exe.



Вы можете скачать исходники рассмотренного примера (40.1 Кб), включающего как jar-файлы, так и exe-файл с проектными pom.xml.

Процесс автоматизации сборки данного примера рассмотрен на странице описания Многомодульного maven проекта.

Читайте также: