Beshere
@Beshere
Разработчик

Как распространять java-программы под Windows?

Приходит время и пора начинать отдавать программу клиентам в виде запускаемого exe-файла вместо батника со строчкой java MyCoolApp.

Как сделать это правильно?
  • Вопрос задан
  • 450 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Часто используемый способ - это скачать launch4j, натравить его на свой jar файл и получить исполняемый файл. По сути это самораспаковывающийся архив с запускалкой и оригинальным файлом внутри, но пользователю это не видно.

Более правильный способ - это использовать jlink:

Структура каталогов простейшего проекта
src
└───com.example
    │   module-info.java
    │
    └───com
        └───example
                App.java

module-info.java
module com.example { }

App.java
package com.example;

public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Команды сборки
javac -d build\mods\com.example src\com.example\module-info.java src\com.example\com\example\App.java

jar --create --file=build\libs\com.example.jar --main-class=com.example.App -C build\mods\com.example .

jlink --module-path build\mods --add-modules com.example --output build\app\example --launcher start=com.example/com.example.App --compress=2 --no-header-files --no-man-pages --strip-debug

В результате в каталоге build\app появится каталог приложения example, который содержит в себе JRE и и саму программу в готовом для распространения виде. Правда, запуск всё ещё осуществляется с помощью батника - example\bin\start.bat

Естественно, лучше не набирать команды руками, а поручить это сборщику - Maven или Gradle.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы