89

有没有什么方法可以在不需要 JVM 的情况下从 Java 编译为独立(或库)机器代码?

4

5 回答 5

41

曾经有一个名为 GCJ 的工具是 GCC 的一部分,但它已被删除。现在,GCC 站点中的所有链接都重定向到它们的非 GCJ 等效项。

注意:评论都提到了我原来的答案,说你可以用 GCJ 将 Java 编译为本机代码。

于 2010-06-07T17:45:11.873 回答
31

是的!

Oracle 一直在研究支持原生图像的 GraalVm。在这里查看: https ://www.graalvm.org/

生镜像 GraalVM SDK 的原生镜像特性有助于缩短 Java 应用程序的启动时间并减少它们的占用空间。实际上,它将在 JVM(在任何平台上)上运行的字节码转换为特定操作系统/平台的本机代码——这是性能的来源。它使用积极的提前 (AOT) 优化来实现良好的性能。

看更多:

于 2018-05-27T18:06:10.950 回答
19

Excelsior JET是一个商业 Java 到本机代码的编译器。但是,它已于 2019 年 5 月停产。

于 2010-06-07T20:38:00.293 回答
9

是的,JVM 中的 JIT 正是为您做的。

事实上,它可以生成比预先编译代码更快的代码,因为它可以根据代码在运行时的使用方式生成针对特定平台优化的代码。

即使非常高的百分比被编译为本机代码,JVM 也总是参与其中,因为您可以动态加载和运行字节代码。

于 2010-06-07T19:01:55.843 回答
0

另一种可能性是RoboVM。但是,它似乎只适用于Linux,iOSMac OS X

到今天为止,这个项目似乎还活着,这与网上一些声称该项目已死的帖子相反。

于 2020-07-24T09:40:00.870 回答