在Mac OS X上捆绑私有JRE

Tom*_*rle 24 java macos

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

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

Mat*_*nit 12

更新(2013年4月15日):

正如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方面做到了这一点,尽管苹果的贡献当然可能有所不同.

希望这可以帮助.如果不出意外,这是一个起点.

编辑:我将抛出一个额外的建议.我们现在知道可以为App Store打包Mono应用程序.此外,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可能是您最好的选择.祝好运!

  • 您无需通过应用商店分发应用.如果这样做,您可以将JRE与它捆绑在一起,并在GPL下发布它.(这更多是针对OP而不是Matt Solnit,但我认为这里的评论是相关的.) (3认同)