在Mac OS X上捆绑私有JRE
问题内容:
从下一个版本的Mac OS X开始,Java将不再包含在系统中,并且我不想强迫客户自己安装它。因此,我想做我在Windows上所做的事情-
将其与我的应用捆绑在一起。它还给了我一些希望,使其可以包含在Mac App Store中。
我可以在哪里下载可以包含在应用程序中的Mac OS X JRE?还是可以只复制Mac上安装的一个?
问题答案:
更新(4/15/2013):
正如Thorbjørn指出的那样,Oracle现在为此提供了一个解决方案。请参阅http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html。但是,我保留原始内容是出于“历史目的”,因为这是一个有趣的研究项目。
先前版本(带有修改):
这是一个很好的问题。我要回应的是,您只是领先一步-
正如您所指出的那样,在Lion发行之前,不会删除Java。但是,本文清楚地表明,今天不允许使用Java:
使用不推荐使用或可选安装的技术(例如Java,[需要PowerPC代码] Rosetta)的应用将被拒绝。
同时,还没有人宣布针对Mac OS X的可再发行JRE。考虑到您正在开拓新的领域,我认为最好的选择是查看OpenJDK项目的Mac OS X Port
Wiki页面
。它 确实
描述了如何编译自己的JDK,但是 没有 明确说明是否可以干净地“捆绑”生成的JDK。我认为您必须尝试一下才能看到:-(。
另外,尚不清楚OpenJDK许可是否完全允许(IANAL)。希望其他人已经在Linux /
Windows上解决了这个问题,尽管对于Apple贡献当然规则可能有所不同。
希望这可以帮助。如果没有别的,那是一个起点。
编辑: 我将抛出另外一个建议。现在我们知道可以将Mono应用程序打包到App
Store中。此外,IKVM.NET是在Mono之上运行的Java的完整实现。你可以尝试,从理论上讲,这两个作品放在一起,并得到一个Java应用程序,捆绑的应用程序商店,这并
没有 实际上的JRE!
如果您尝试这样做,我很想听听它是如何工作的:-)。
编辑2: 不幸的是,App Store和GPL似乎不兼容(请参阅http://www.zdnet.com/blog/open-source/no-
gpl-apps-for-apples-app-store/8046)。OpenJDK许可证与GPL 并不 完全相同
,但是非常接近(同样是IANAL)。因此,Mono和IKVM.NET可能是您最好的选择。祝好运!