有什么方法可以从Java编译为独立的(或库)机器代码,而无需JVM?
有什么方法可以从Java编译为独立的(或库)机器代码,而无需JVM?
Answers:
曾经有一个称为GCJ的工具是GCC的一部分,但已被删除。现在,GCC站点中的所有链接都重定向到其非GCJ等效项。
注意:所有注释均引用了我的原始答案,表示您可以使用GCJ将Java编译为本机代码。
是!
Oracle一直在开发支持本机映像的GraalVm。检查这里:https : //www.graalvm.org/
本机映像 与GraalVM SDK原生图像特征有助于提高Java应用程序的启动时间,让他们有一个更小的空间。实际上,它会将在JVM(在任何平台上)上运行的字节码转换为特定OS /平台的本机代码,这正是性能的来源。它使用积极的提前(AOT)优化来获得良好的性能。
查看更多:
Windows
只有玩具程序可以工作,但是任何更高级的东西和/或使用a时还GUI
没有。Twitter
可能Linux
没有使用任何功能,GUI
但当我仅尝试使用社区版本时,他们也可能也使用了商业版本。它可能适用于某些用例,但JavaWindows
桌面应用程序不是其中之一,这仍然使项目有些令人失望。Excelsior JET
可以可靠地做到这一点,但现在已停产。
Excelsior JET是商业Java到本机代码编译器。但是,它于2019年5月停产。
是的,JVM中的JIT正是为您完成的。
实际上,它可以生成比预先编译代码更快的代码,因为它可以基于在运行时使用代码的方式生成针对特定平台优化的代码。
即使将非常高的百分比编译为本机代码,也始终会涉及JVM,因为您可以动态加载和运行字节码。
另一种可能性是RoboVM
。然而,似乎只有去努力Linux
,iOS
和Mac OS X
。
截止到今天,该项目似乎还活着,这与网上一些声称该项目已经死亡的帖子相反。