问题描述
我正在创建与discord的Rich Presence兼容的游戏,并且因为discord使用exe
文件来启动游戏,所以当我尝试从discord启动游戏时,它将启动java.exe
可执行文件来自JRE,而不是游戏的jarfile。
我要问的是,有什么方法可以复制jre(将其捆绑在游戏中)并设置为自动启动特定的jarfile吗?如果是,怎么办? 如果不可能,是否有任何方法可以从exe启动jar,而无需单独启动java.exe? 感谢您的帮助。
- 对不起,英语不好,我是法语
解决方法
Java 14包含一个packaging tool,可以完全允许这样做。也提供有关如何执行此操作的教程,例如here。简而言之,这样的事情应该起作用:
jpackage --input target/ \
--name MyApp \
--main-jar myApp.jar \
--main-class com.company.MyApp \
--type exe \
--java-options '--enable-preview'
如果您尚未使用Java 14,但版本较旧,请查看WinRun4J或Launch4J。两者都允许为Jar文件创建exe包装器,或者创建一个exe文件以及JRE和jar文件以独立运行它。这两个仅适用于Windows,而Java打包工具将在各自的平台上运行时为每个平台(Windows,macOS,Linux)创建可执行文件(它不具有跨平台功能,例如,在Windows上创建macOS可执行文件)。>
对于macOS,有appbundler可以创建包含JRE和jar-File的.app,因此用户只需双击该应用程序即可启动Java应用程序。