【问题标题】:How do I package a java jar file to run on a Mac without JRE installed?如何打包 java jar 文件以在未安装 JRE 的 Mac 上运行?
【发布时间】:2021-02-16 11:13:38
【问题描述】:

我正在尝试在 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 方软件。

How to run jar without JRE installed manually?

How do I run a JAR file in Ubuntu that was compiled on windows?

【问题讨论】:

  • 查看jpackage,它是 Java 14+ 的一部分。
  • IntelliJ 为所有操作系统创建独立的可执行文件
  • @cello 你回答了我的问题。 jpackage 正是我想要的。请将此作为答案发布。
  • @macdays:谢谢!我不确定 Java 14+ 是否满足您的要求,因为您没有在问题中指定任何 Java 版本。

标签: java windows macos


【解决方案1】:

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

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

【讨论】:

  • 我试用了 jpackage,但它对我不起作用。在这一点上,我什至愿意尝试第三方工具。我试过 install4j 没有成功。我发现另一个网站说将 install4j 与 Inno Setup Compiler 一起使用。这更复杂,也不起作用。我想也许 WiX 工具集可能会起作用。我真的不在乎如何,我只想为我的 jar 文件创建一个 Windows 安装程序。我不想在要部署到的目标计算机上安装 jre/jdk。
  • 请解释为什么它不适合你。你收到错误信息了吗?你期待不同的行为吗?如果没有更多详细信息,人们将无法为您提供帮助。
  • 没关系,它不起作用是我的错。我在jar文件所在的目录中有一堆额外的文件,所以我只是创建了一个新目录,只把NtbnsProj.jar放在里面。然后我运行以下命令:jpackage --name Test --input . --main-jar NtbnsProj.jar 详细信息请参阅我的相关帖子:stackoverflow.com/questions/65047035/…
猜你喜欢
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 2019-04-14
  • 2021-05-20
相关资源
最近更新 更多