在Mac OS X上捆绑私有JRE

时间:2011-01-15 10:15:38

标签: macos java

从下一版本的Mac OS X开始,Java将不再包含在系统中,我不想强​​迫我的客户自行安装。所以我想做我在Windows上做的事情 - 用我的应用程序捆绑它。它也让我有一些希望,它可以包含在Mac App Store中。

我在哪里可以下载可以包含在我的应用程序中的Mac OS X JRE?或者我可以复制我Mac上安装的那个吗?

3 个答案:

答案 0 :(得分:12)

更新(2013年4月15日):

正如Thorbjørn所指出的那样,Oracle现在有了解决方案。见http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html。但是,我保留原始内容用于“历史目的”,因为它是一个有趣的研究项目。

以前的版本(包含修改):

这是一个很好的问题。我的回答是你只是超前于你的时间 - 正如你所指出的那样,在Lion发布之前,Java不会被删除。但是,this article表明不允许今天使用Java:

  

使用已弃用或可选安装技术的应用(例如,Java,[PowerPC code require required] Rosetta)将被拒绝。

与此同时,还没有人宣布为Mac OS X推出可再发行的JRE。考虑到你正在开辟新局面,我认为你最好的选择是查看OpenJDK项目的Mac OS X Port wiki page。它确实描述了如何编译自己的JDK,但明确说明生成的JDK是否可以干净地“捆绑”。我想你必须尝试看看: - (。

此外,目前还不清楚OpenJDK许可是否允许这一点(IANAL)。希望其他人已经在Linux / Windows方面做到了这一点,尽管苹果的贡献当然可能会有所不同。

希望这会有所帮助。如果不出意外,这是一个起点。

编辑:我要再提出一项建议。我们现在知道Mono apps can be packaged for the App Store。此外,IKVM.NET是在Mono之上运行的Java的完整实现。理论上,您可以尝试将这两个部分放在一起,并获得一个捆绑在App Store中的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可能是您最好的选择。祝你好运!

答案 1 :(得分:4)

在我发现此问题的同一网页搜索中,我找到了OpenJDK项目中的these instructions。我自己没有尝试过,我无法评论它们的工作情况。

与此同时,另一个人,very detailled article由Marco Dinacci出版,也进入了签名和沙盒。

答案 2 :(得分:-2)

Apple上个月加入了Sun / Oracle OpenJDK开源项目,因此Apple上的Java活跃起来。

告诉用户下载并安装适用于Mac OSX的OpenJDK JRE(当它可用时,现在只是源代码)。

不。未经许可,您不能包含“Mac中的文件夹”,因为它是Apple的受版权保护的代码。

最后,打包“私有JRE”是一种非常糟糕的做法,它会使你的应用程序臃肿,如果用户最终运行多个Java应用程序,他最终会同时运行多个Java VM,这是一个可怕的系统浪费资源。