我使用jdk 1.8u40开发Netbeans平台应用程序。我想用私有jvm包jre jdk 1.8u40为Mac打包安装程序。我用包Jre为linux和windows创建了一个安装程序,但是Mac os x我不能。我不知道如何在netbeans平台上使用jarbundler来创建Mac Os X的安装程序。有没有其他方法可以捆绑jre for mac应用程序?谢谢
发布于 2015-05-27 18:12:47
不幸的是,这是一个遗漏,可以追溯到一段时间前的NetBeans Installer项目(NBI)。
这里有一个开放的RFE,这篇文章的大部分内容都来自于那个RFE。
事实上,NBI目前(从NB 8.0.2开始)不支持与Mac捆绑的JRE。
为什么会这样,我不知道,但我认为原因是在创建NBI的时候,Mac上捆绑的JRE的概念有点陌生。当时,Mac总是预装了JRE。如今,Mac没有预装JRE,苹果积极鼓励开发人员将私有JRE与应用程序捆绑在一起。事实上,如果您希望在Mac App Store中使用您的应用程序,则必须将私有JRE与您的应用程序捆绑在一起。
基本上有两种方法可以解决这个问题:
下面,我将重点介绍第二种方法。它涉及到签出NB核心源代码和构建您自己的nbi-engine.jar文件,然后在您的项目中使用该文件,而不是使用平台本身附带的文件。
nbi/engine的项目。一旦打开,它将看起来像这样:
在项目中,
org/netbeans/installer/wizard/components/actions/CreateMacOSAppLauncherAction.java.CreateNativeLauncherAction.java文件中相同的代码。您可以在patch file attached to the RFE.CreateMacOSAppLauncherAction.java进行的确切更改。结果就产生了一个新的nbi-engine.jar。您需要从该项目中回收nbi-engine.jar文件,并将其放入其他位置。在此之后,您将不再需要"NBI Engine“项目,您可以将其删除。实际上,您可以删除第1步中从Mercurial中签出的所有内容。就这样。
现在剩下的是弄清楚如何让您的项目使用新生成的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包。但这不是你问的问题。:-)
https://stackoverflow.com/questions/29600720
复制相似问题