在适用于Mac OS X的Swing应用程序中嵌入JRE

M'λ*_*'λ' 6 java macos swing

我必须发布带有嵌入式JRE的swing应用程序.带有application + JRE + .bat/.sh的压缩存档为Windows和Linux提供了技巧.用户下载zip,解压缩并启动应用程序.完善.

但是现在,我必须为Mac OS X提供相同的功能.我已经阅读/被告知有很多不同的事情(禁止在Mac上发布JRE,相反,Mac上总是有JRE等. ..),所以我真的很困惑我可以做什么.

有没有人做过这样的事情?你是如何解决Mac应用程序部署的?作为奖励,在Mac上分发我的应用程序的最佳格式是什么(zip?)?

小智 1

我认为您可以放心地假设 JRE 已经存在于 Mac 上。

最好的格式(据我所知 - 我自己不是 Mac 用户)是tar.gz“App”捆绑包(以保留文件属性)。

您可以使用“jarbundler”(http://sourceforge.net/projects/jarbundler/)创建一个合适的Mac“捆绑包”,可以轻松提取该“捆绑包”。确保捆绑包中包含的存根在 Anttar任务中被标记为“可执行”。

我认为如果安装多个JRE,就会出现一些问题。在这种情况下,必须使用正确的存根来启动应用程序所需的 JRE 版本。如果我没记错的话,这个存根位于/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub

有一个页面表明 Java7 和 jarbundler 可能存在问题:http://informagen.com/JarBundler/