有没有办法在不需要JVM的情况下从Java编译成独立(或库)机器代码?
答案 0 :(得分:36)
曾经有一个名为GCJ的工具是GCC的一部分,但它是been removed。现在,GCC网站中的所有链接都会重定向到他们的非GCJ等价物。
注意:这些评论都是我原来的答案,说你可以用GCJ将Java编译成本机代码。
答案 1 :(得分:16)
Excelsior JET是本机代码编译器的商业Java。
答案 2 :(得分:10)
是!
Oracle一直在研究GraalVm,它支持Native Images。点击此处:https://www.graalvm.org/
原生图片 GraalVM SDK的本机映像功能有助于缩短Java应用程序的启动时间,并使其占用空间更小。实际上,它将在JVM(在任何平台上)上运行的字节码转换为特定操作系统/平台的本机代码 - 这是性能的来源。它正在使用积极的提前(AOT)优化来实现良好的性能。
查看更多:
答案 3 :(得分:9)
是的,JVM中的JIT完全适合您。
事实上,它可以生成比预先编译代码更快的代码,因为它可以根据代码在运行时的使用方式生成针对特定平台优化的代码。
即使将非常高的百分比编译为本机代码,JVM也会始终参与,因为您可以动态加载和运行字节代码。
答案 4 :(得分:0)
另一种可能性是RoboVM
。
但是,它似乎仅适用于Linux
,iOS
和Mac OS X
。
截止到今天,与在线claiming the project to be dead上的一些帖子相反,该项目似乎还活着。