Java project to exe file

Create Windows Executable (.exe) for Java Application

Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executable files. In this post, we will learn making such an executable file for a demo java application.

Step1 ) Create a java application

I am creating a very basic java class which simply displays a frame and some text on it. It also has the main() method which will start the application.

package com.howtodoinjava; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Label; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JDialog; public class ApplicationMain extends JDialog < private static final long serialVersionUID = 1L; public ApplicationMain() < //Create a frame Frame f = new Frame(); f.setSize(500, 300); //Prepare font Font font = new Font( "SansSerif", Font.PLAIN, 22 ); //Write something Label label = new Label("Launch4j Maven Demo with HowToDoInJava.com"); label.setForeground(Color.RED); label.setFont(font); f.add(label); //Make visible f.setVisible(true); f.addWindowListener(new WindowAdapter() < public void windowClosing(WindowEvent e) < System.exit(0); >>); > public static void main(final String[] args) < new ApplicationMain(); >>

Step 2) Create maven file with launch4j configured in it

I have created a pom file for packaging the application as .exe file. If you feel something unclear, drop a comment.

 4.0.0 com.howtodoinjava JavaExeDemo jar 1.0-SNAPSHOT JavaExeDemo http://maven.apache.org UTF-8    org.apache.maven.plugins maven-compiler-plugin 2.5.1 1.6 1.6   org.apache.maven.plugins maven-shade-plugin 1.7.1  package shade    true shaded  com.howtodoinjava.Main     com.akathist.maven.plugins.launch4j launch4j-maven-plugin 1.5.1  l4j-clui package launch4j  gui $/$-$-shaded.jar $/howtodoinjava.exe http://java.com/download com.howtodoinjava.ApplicationMain anything  application.ico 1.6.0 preferJre  1.0.0.0 $ $ 2012 howtodoinjava.com 1.0.0.0 1.0.0.0 $ howtodoinjava.com howtodoinjava howtodoinjava.exe         

Step 3) Create .exe file

To make the exe file for above java program, run maven command:

Above command will create the “howtodoinjava.exe ” file in your project’s target folder. Double click on .exe file will open the window like this.

Launch4j maven demo to create java executable

If you want to download source code of above application, click on below given download link.

Happy Learning !!

Источник

Кофе-брейк #148. Как превратить любую Java-программу в автономный EXE-файл

Java-университет

Кофе-брейк #148. Как превратить любую Java-программу в автономный EXE-файл - 1

Источник: Mccue.dev Сегодня вы узнаете, как создать из Java-программы исполняемый EXE-файл для запуска в операционной системе Windows. Двойной щелчок для запуска — один из самых простых способов открыть программу. Если у человека, которому вы хотите показать свое приложение, уже установлена ​​правильная версия Java, для запуска он может дважды щелкнуть файл jar. Если же у него не установлена ​​Java, то есть способы создать исполняемый установщик, такой как jpackage. После этого для запуска кода нужно лишь нажать на этот установщик. Также можно использовать Native Image, чтобы превратить код в исполняемый файл, который не требует какой-либо дополнительной установки. В этой статье мы сосредоточимся на довольно простом подходе, который работает для любого приложения, независимо от того, какие зависимости вы включаете или какие функции JVM используете. Код, о котором сегодня пойдет речь, можно найти в репозитории GitHub, а исполняемые файлы с программой выложены здесь.

Используемый стек

Java 9+

Maven

NodeJS

Шаг 1. Скомпилируйте и упакуйте свой код в jar

Эта базовая программа создаст простое окно с текстом, который вы можете менять, нажимая на одну из кнопок в интерфейсе.

 package example; import org.apache.commons.text.WordUtils; import javax.swing.*; import java.awt.*; public class Main < public static void main(String[] args) < var label = new JLabel("Hello, World!"); label.setFont(new Font("Serif", Font.PLAIN, 72)); var uppercaseButton = new JButton("Uppercase"); uppercaseButton.addActionListener(e ->label.setText(WordUtils.capitalize(label.getText())) ); var lowercaseButton = new JButton("lowercase"); lowercaseButton.addActionListener(e -> label.setText(WordUtils.uncapitalize(label.getText())) ); var panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); panel.add(label); panel.add(uppercaseButton); panel.add(lowercaseButton); var frame = new JFrame("Basic Program"); frame.add(panel); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); > > 

Сейчас наша цель состоит в том, чтобы упаковать код вместе с его зависимостями в jar. JAR-файлы — это обычные ZIP-архивы с небольшой дополнительной структурой. Для проекта Maven конфигурация будет выглядеть следующим образом.

Здесь плагин “shade” будет обрабатывать включение кода из всех ваших зависимостей в jar. В данном случае единственной внешней зависимостью является org.apache.commons/commons-text.

Шаг 2. Создайте среду выполнения Java (Java Runtime Environment, JRE)

Чтобы запустить уже созданный нами jar-файл, нужно связать его со средой выполнения Java. Для этого мы будем использовать jlink. Поскольку в экосистеме Java не используются модули, то вы, скорее всего, не слышали о них и не использовали jlink. Короче говоря, jlink может создавать “настраиваемые исполняемые образы”. Например, вы делаете веб-сервер. Вам не нужны AWT или Swing, поэтому включать их в код будет лишним. С помощью jlink вы можете создать JRE, которая вообще не включает модуль java.desktop. Эта система работает лучше всего, если ваше приложение и все его зависимости включают скомпилированные файлы module-info.java, которые дают jlink точную информацию, какие модули вы хотите включить. Вы также можете вручную определить список необходимых модулей, используя jdeps. И даже без модульного проекта мы можем эффективно клонировать нашу инсталляцию Java в каталог с помощью jlink.

Включение каждого модуля по отдельности дает уверенность в том, что такие библиотеки как org.apache.commons/commons-text будут работать именно так, как задумано. Нужно лишь выяснить, какие модули нам требуются.

Шаг 3. Объедините Jar и JRE в исполняемый файл

  1. Заархивируйте каталог, содержащий JRE и jar вашего приложения.
  2. Прикрепите сценарий-заглушку (stub script) к верхней части этого zip-файла, который извлечет данные во временный каталог и запустит код.

npx caxa \ —input build \ —output application \ —no-include-node \ — «<>/runtime/bin/java» «-jar» «<>/javaexe-1.0.jar»

Это создаст исполняемый файл с именем “application”. Если вы создаете его для Windows, то нужно указать “application.exe”. Когда исполняемый файл запускается, <> будет заменен на временный каталог, в котором был развернут zip-файл. Учтите, что при создании исполняемых файлов используются также и такие механизмы, как подпись кода и автоматические обновления. Однако эти вещи требуют более глубокого изучения, которое трудно вместить в одну публикацию.

Источник

Конвертируем JAR в исполняемый (.exe) файл

Java-университет

Кратчайшая инструкция. Пишем простейшее тестовое приложение, допустим «Hi Amigo!» в файл HiAmigo.txt 100 раз.

 public class Main < public static void main(String[] args) throws IOException < File file = new File("C:\\temp\\HiAmigo.txt"); FileWriter fileWriter = new FileWriter(file); for (int i = 0; i < 100 ; i++) < fileWriter.write("Hi Amigo! \n"); >fileWriter.close(); > > 

Проверяем что все работает на этом этапе (это важно!) Конвертируем JAR в исполняемый (.exe) файл - 1Идем File -> Project Structure -> Artifacts -> + JAR -> From Modules with dependencies.. Конвертируем JAR в исполняемый (.exe) файл - 2Указываем путь к нашему Main.class: Конвертируем JAR в исполняемый (.exe) файл - 3Жмем ОК Жмем Build Artifacts — > Action -> Build Конвертируем JAR в исполняемый (.exe) файл - 4Появляется наш артефакт: Конвертируем JAR в исполняемый (.exe) файл - 5Удаляем наш тестовый файл «C:\\temp\\HiAmigo.txt» и запускаем JAR. Файл должен появиться еще раз. Если появился — все ок. Едем дальше. Качаем тулзу с сайта https://launch4j.sourceforge.net/ (Рекомендую версию 3.14, потом объясню почему). Устанавниваем запускаем. Нам нужно два поля. Указываем наш JAR и куда класть готовый .exe Конвертируем JAR в исполняемый (.exe) файл - 6Сейчас самое интересное. Представьте ситуацию что на машине где мы планируем использовать наше приложение не установлена JRE и нет возможности ее установить. Такое часто бывает по соображениям безопасности. К тому же хорошо бы обеспечить наше приложение более высоким уровнем автономности. Делаем следующее. Создаем отдельный каталог для нашего приложения, пусть OurApp. Внутри создаем папку JRE. Качаем JRE (в моем примере пусть будет jre-8u361-windows-i586) устанавливаем куда нибудь (если это готовый архив разархивируем) и выдергиваем из нее все файлы. Копируем все в \OurApp\JRE\ должно получиться примерно так: Конвертируем JAR в исполняемый (.exe) файл - 7В Launch4j переходим во вкладку JRE и в поле Bundled JRE paths: указываем имя каталога JRE Конвертируем JAR в исполняемый (.exe) файл - 8Жмем на шестеренку и выбираем любой файл для сохранения конфигурации типа file.xml Конвертируем JAR в исполняемый (.exe) файл - 9После нажатия на save появится наш exe. Конвертируем JAR в исполняемый (.exe) файл - 10Копируем exe и кладем рядом рядом с папкой JRE Конвертируем JAR в исполняемый (.exe) файл - 11Удаляем тестовый C:\temp\HiAmigo.txt. Запускаем exe и смотрим как создается новый. Вот и все. Теперь каталог можно OurApp можно архивировать и передавать куда угодно, exe отработает. Важно: Версия JRE в папке должна быть не ниже той на которой билдился артефакт. Проверяйте поле: Конвертируем JAR в исполняемый (.exe) файл - 12В моем случае возникли проблемы совместимости с x86 платформой и я использовал версию враппера 3.14, так как в ней можно явно указывать тип целевой архитектуры. В общем всем спасибо за внимание. Это была моя первая статья-инструкция, прошу не судить строго. Всем мир!

Источник

Читайте также:  Javascript добавить атрибут тегу
Оцените статью