gpt4 book ai didi

java - Netbeans 平台安装程序 mac OS X 与捆绑 jre(Mac 上的私有(private) Jvm)

转载 作者:行者123 更新时间:2023-12-02 04:46:49 25 4
gpt4 key购买 nike

我使用 jdk 1.8u40 开发 Netbeans 平台应用程序。 我想使用私有(private) jvm 包 jre jdk 1.8u40 打包 Mac OS X 的安装程序。我使用捆绑 Jre 创建了一个适用于 linux 和 windows 的安装程序,但 Mac os x 不能。我不知道如何使用 jarbundler 和 netbeans 平台来创建 Mac Os X 安装程序。还有另一个可以为 mac 应用程序捆绑 jre 吗?谢谢

最佳答案

不幸的是,这是一个遗漏,可以追溯到不久前创建 NetBeans 安装程序项目 ( NBI ) 时。

有一个 RFE为此开放,本文大部分文本来自该 RFE。

事实上,NBI 目前(从 NB 8.0.2 开始)不支持与 Mac OS X 捆绑的 JRE。

为什么会这样,我不知道,但我假设原因是在创建 NBI 时,Mac OS X 上捆绑 JRE 的概念有些陌生。当时,Mac OS X总是预装了 JRE。如今,Mac OS X 没有预装 JRE,Apple 积极鼓励开发人员将私有(private) JRE 与应用程序捆绑在一起。事实上,如果您希望您的应用程序出现在 Mac App Store 中,那么您必须将私有(private) JRE 与您的应用程序捆绑在一起。

解决这个问题基本上有两种方法:

  1. 您可以等待 RFE 被接受并修复。
  2. 自己修复即可。

下面,我将重点介绍第二种方法。它涉及检查 NB 核心源代码并构建您自己的 nbi-engine.jar 文件,然后在您的项目中使用该文件,而不是平台本身附带的文件。

  1. 首先查看 Mercurial 的最新 NB 源代码。像 hg clone http://hg.netbeans.org/main-golden/ 之类的东西应该让你继续前进。

  2. 使用 IDE (NetBeans!) 打开位于 nbi/engine 的项目在您刚刚从 Mercurial checkout 的文件中。打开后,它看起来像这样:NBI Engine project

  3. 在该项目中找到源代码文件:org/netbeans/installer/wizard/components/actions/CreateMacOSAppLauncherAction.java

  4. 对于此文件,您只需添加与同一目录中的等效 CreateNativeLauncherAction.java 文件中存在的代码相同的代码。您可以在 patch file attached to the RFE 中找到需要对 CreateMacOSAppLauncherAction.java 进行的确切更改。 .

  5. 现在重新构建“NBI Engine”项目。结果会生成一个新的nbi-engine.jar。您需要从该项目中回收 nbi-engine.jar 文件并将其放在其他位置。之后,您将不再需要“NBI Engine”项目,并且可以将其删除。事实上,您可以删除在第 1 步中从 Mercurial checkout 的所有内容。

就是这样。

现在剩下的就是弄清楚如何让您的项目使用新生成的 nbi-engine.jar 文件,而不是 NB 平台附带的文件。下面我将解释如何为基于 Maven 的 NB 平台项目执行此操作。如果您的项目是基于 Ant 的,那么您就得靠自己了。 :-(

在您的 POM 文件中进行以下调整:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<configuration>
<userSettings>
<!-- This will override parameter of the same name set by the MOJO -->
<nbi.engine.jar>path-to-an-alternative-nbiengine-jar</nbi.engine.jar>
</userSettings>
</configuration>
</plugin>

仅此而已。

您的下一个问题将是如何从 Oracle 的官方 JRE 包中创建适用于 Mac 的 JRE bundle 。但这不是你问的问题。 :-)

关于java - Netbeans 平台安装程序 mac OS X 与捆绑 jre(Mac 上的私有(private) Jvm),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29600720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com