是否有适用于Mac OSX的原生Java AOT?

4
我想知道是否有适用于Mac的AOT编译器,可以将Java应用程序编译为本地可执行文件,从而消除对JRE的需求?
我已经看到了商业化的Windows和Linux示例,但是除了开源的GCJ之外,在Mac上没有找到任何东西,而GCJ在一些流行的Java库方面的成功有限。
Mac的本地可执行文件将摆脱JRE,并可能允许签名,从而使Java开发的应用程序有可能被App Store接受。
2个回答

0

Install4J可以将您的Java编译为本地OS X应用程序,但系统仍然应该安装JRE。 Install4J只是为JRE调用创建一个包装器。


这不是一个真正的本地OS X应用程序,就像你说的那样,它只是一个包装器,仍然需要JRE。真正的AOT将Java代码编译成真正的本地应用程序,因此没有这样的依赖关系。 - user427165

0
你可以使用Avian Java虚拟机来实现。(维基百科文章)。
你可以将应用程序编译为独立的可执行文件,并支持不同的类库:openjdk,Android类库实现(即使你没有在Android上运行),以及一个非常有限的自定义类库(基本上是作者需要API来运行自己的应用程序时添加方法)。
在代码存储库的README中,有一篇关于如何嵌入VM和生成“引导”C++程序以运行您的应用程序并引用“引导图像”部分的描述,如果您想要AOT编译所有方法并生成二进制映像,无需在运行时进行JIT编译。
没有引导图像,你可以提供jar文件和一个可执行文件来“启动”它们(可执行文件将嵌入虚拟机)。有了引导图像,jar文件还将被预编译为本地代码。

另一方面,如果您只需要一个托管的语言/平台,您也可以使用.NET/Mono AOT。请参阅随Mono 2.x附带的mkbundle工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接