@12rbah

Есть какой-нибудь гайд о том как собрать java файлы в бинарник?

Есть какой-нибудь способ для того, чтобы создать исполняемый файл из java файлов и при этом не просить пользователя докачивать что-нибудь после установки (допустим у него нет JVM на ПК). Если есть подробный гайд по тому как сделать такой exe прошу поделиться им.
  • Вопрос задан
  • 466 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Можно с помощью jlink создать дистрибутивную версию программы, включающую в себя JRE. Это стандартный, официально рекомендуемый подход, но получится не один exe'шник, а каталог с множеством файлов и bat'ником для запуска программы.

Настоящий exe'шник можно сделать с помощью утилиты native-image, входящей в Graal, но далеко не все java-программы для этого подойдут.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Комментировать
Комментировать
raydac
@raydac
очень ленивый программист
сам по себе бинарник сделать не получится, к Java нужна JVM, но можно сделать небольшой трюк и подготовить псевдо-бинарники для разных ОС, используя плагины для Maven. Часто для пользователя важна простота запуска, а не "именно бинарник" (хотя был один такой случай с одной питоновской утилитой у меня и пришлось переписать её на Golang, так как последний позволяет сделать именно бинарник).
Если оформлять приложение в виде Spring Boot то можно сделать солянку для разных ОС с помощью Maven:
- при помощи launch4j-maven-plugin плагина сделать exe bundle версию для Windows
- при помощи appbundle-maven-plugin плагина сделать app image для Mac OS
- при помощи Spring Boot плагина сделать SH запускаемый файл для Linux
все приведенное будет использовать установленную Java на пользовательской тачке, как пример - утилита для трансляции видео на Kodi

если хочется отвязаться от установленной JDK, то при помощи jlink (к примеру через mvn-jlink плагин в мавене) делать кросс-платформенные имеджи и паковать с приложением, например так делает проект SciaReto
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы