Как в 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 в разделе экспорт.
введите путь, по которому вы хотите его сохранить. Пример здесь-Windows. Изменение в соответствии с вашей платформой.
Нажмите Кнопку Далее.
изменить поле основного класса по просмотр и выбор местоположения вашего класса, который содержит main метод.
запустить
чтобы запустить файл 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 проекта.
Читайте также: