我想知道Mac是否有AOT编译器将Java应用程序编译成本机可执行文件,因此不需要JRE?
我已经看过Windows和Linux的商业示例,但除了开源GCJ以外,还没有找到适用于Mac的任何东西,而这些开源GCJ在一些杨树java库方面的成功有限。
Mac的本机可执行文件将摆脱它的JRE,并且可能允许它被签名,允许Java开发的应用程序可能被接受到应用商店中。
答案 0 :(得分:0)
Install4J可以将Java编译为本机OS X应用程序,但系统仍应安装JRE。 Install4J只是为JRE调用创建一个包装器。
答案 1 :(得分:0)
您可以使用Avian JVM进行此操作。 (Wikipedia article)。
您可以将应用程序编译为独立的可执行文件,它支持不同的类库:openjdk,Android类库实现(即使您没有在 Android上运行),还有一个自定义类库是非常有限的(基本上他们添加方法,因为作者需要API来运行他们自己的应用程序。)
在代码库的README中,有一个描述如何嵌入VM并生成" boot"将运行您的应用程序的C ++程序,并参考" bootimage"如果你想AOT编译所有方法并生成一个二进制映像,无需在运行时进行JIT编译。
如果没有启动映像,您可以发送jar文件和一个可执行文件,它将启动"他们(可执行文件将嵌入虚拟机)。使用启动映像,jar文件还将预编译为本机代码。
另一方面,如果您只需要托管语言/平台,也可以使用.NET/Mono AOT。请参阅Mono 2.x附带的mkbundle工具。