сам по себе бинарник сделать не получится, к 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