要求JRE在启动java.exe时运行jarfile

问题描述

我正在创建与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,但版本较旧,请查看WinRun4JLaunch4J。两者都允许为Jar文件创建exe包装器,或者创建一个exe文件以及JRE和jar文件以独立运行它。这两个仅适用于Windows,而Java打包工具将在各自的平台上运行时为每个平台(Windows,macOS,Linux)创建可执行文件(它不具有跨平台功能,例如,在Windows上创建macOS可执行文件)。>

对于macOS,有appbundler可以创建包含JRE和jar-File的.app,因此用户只需双击该应用程序即可启动Java应用程序。