首页 > 解决方案 > 如何打包 java jar 文件以在未安装 JRE 的 Mac 上运行?

问题描述

我正在尝试在 Windows 操作系统上打包一个 java jar 文件,这样用户就不必担心在 Mac OS 上安装 jre。我可以简单地将 jre 的副本放在 jar 文件所在的文件夹中,并将 java_home 环境变量指向该 jre,以便当我双击 jar 文件时,它知道 jre 所在的位置(如果没有的话)安装在目标(Mac OS)系统上?

我一直在看以下链接:

https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

但它似乎更多地与通过 Mac App Store 部署应用程序有关。我基本上只是希望用户能够单击并运行 java jar 文件而无需安装 JRE。

我还查看了一些使用 Launch4j 或 jPortable 的链接,但我宁愿不必依赖 3rd 方软件。

如何在没有手动安装 JRE 的情况下运行 jar?

如何在 Ubuntu 中运行在 Windows 上编译的 JAR 文件?

标签: javawindowsmacos

解决方案


Java 14 及更高版本包含一个名为jpackage的新工具,可在每个平台上创建本机可执行文件。有关于如何使用它的教程,例如这里。简而言之,这样的事情应该有效:

jpackage --input target/ \
  --name MyApp \
  --main-jar myApp.jar \
  --main-class com.company.MyApp \
  --type dmg \
  --java-options '--enable-preview'

推荐阅读