#java #jar #discord #exe
#java #jar #Discord #exe
Вопрос:
Я создаю игру, совместимую с богатым присутствием Discord, и поскольку Discord использует exe
файлы для запуска игр, когда я пытаюсь запустить свою игру из Discord, она запускает java.exe
исполняемый файл, поступающий из JRE, вместо файла jar моей игры.
Я спрашиваю, есть ли какой-либо способ скопировать jre (чтобы связать его с игрой) и настроить его на автоматический запуск определенного файла jar? Если да, то как? Если это невозможно, есть ли какой-либо способ запустить jar из exe-файла без запуска java.exe отдельно? Спасибо за вашу помощь.
- Извините за плохой английский, я француз
Ответ №1:
Java 14 включает в себя инструмент упаковки, который позволяет именно это. Также доступны руководства о том, как это сделать, например, здесь. Короче говоря, что-то вроде этого должно работать:
jpackage --input target/
--name MyApp
--main-jar myApp.jar
--main-class com.company.MyApp
--type exe
--java-options '--enable-preview'
Если вы еще не используете Java 14, а более старую версию, взгляните на WinRun4J или Launch4J. Оба позволяют создавать exe-оболочки для Jar-файлов или создавать exe-файл вместе с JRE и jar-файлом для его независимого запуска. Эти два работают только для Windows, тогда как Java packaging tool создаст исполняемые файлы для каждой платформы (Windows, macOS, Linux) при запуске на соответствующей платформе (он не поддерживает кроссплатформенность, например, создание исполняемого файла macOS в Windows).
Для macOS есть appbundler, который может создавать .app с включенными JRE и jar-файлом, поэтому пользователи могут просто дважды щелкнуть приложение, чтобы запустить Java-приложение.