AppBundler在OS X Java App中不包含来自JRE的二进制文件

时间:2015-02-17 12:27:56

标签: java macos cocoa app-bundle

我正在尝试将我的java应用程序打包到OS X App Bundle中,并且我希望包含JRE,因此它可以在没有安装JRE的情况下运行。

我正在关注http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

AppBundler Ant任务将生成包含JRE的.app但它缺少所有二进制文件。

应用程序将运行,但我不确定它是否使用我安装的JRE,因为它缺少二进制文件。或者包含的JavaAppLauncher是否取代了普通的java二进制文件?

1 个答案:

答案 0 :(得分:1)

在应用中捆绑JRE时,不包含bin/文件夹。它使用的唯一本机二进制文件位于MyApp / Contents / MacOS和MyApp / Contents / Plugins / MyJRE / Contents / MacOS。

  

或者,包含的JavaAppLauncher是否取代了普通的java二进制文件?

应用包不会调用' java'命令。 JavaAppLauncher和libjli.dylib的某种组合动态调用Java。

如果您不确定它是否使用捆绑版本的Java,请在应用运行时输出。它将告诉您Java被调用的位置:

System.getProperty("java.home", "")