4

我想知道 Mac 是否有 AOT 编译器来将 Java 应用程序编译为本机可执行文件,从而消除对 JRE 的需要?

我已经看到了适用于 Windows 和 Linux 的商业示例,但除了开源 GCJ 之外,还没有找到任何适用于 Mac 的示例,后者在一些 poplar java 库中取得了有限的成功。

Mac 的本机可执行文件将摆脱 JRE,并可能允许对其进行签名,从而允许 Java 开发的应用程序可能被应用商店接受。

4

2 回答 2

0

您可以为此使用Avian JVM。(维基百科文章)。

您可以将您的应用程序编译为独立的可执行文件,它支持不同的类库:openjdk、Android 类库实现(即使您不是Android 上运行)和一个非常有限的自定义类库(基本上它们向其中添加方法因为作者需要 API 来运行他们自己的应用程序)。

在代码存储库的自述文件中,有一个描述如何嵌入 VM 并生成一个“引导”C++ 程序,该程序将运行您的应用程序,如果您想 AOT 编译所有方法并生成二进制文件,请参阅“引导映像”部分图像消除了在运行时进行 JIT 编译的需要。

如果没有启动映像,您可以发送 jar 文件和将“启动”它们的可执行文件(可执行文件将嵌入虚拟机)。使用启动映像,jar 文件将另外预编译为本机代码。

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

于 2013-12-30T23:09:01.327 回答
0

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

于 2011-08-31T00:54:23.050 回答