Answers:
看来Java的GNU编译器可以将Java源代码转换为Java字节码或机器代码。它还可以将现有的Java字节码转换为机器代码。但是,最后一条消息来自2009年,所以我不确定它的最新情况以及它是否可以处理Java语言的最新功能。
并不是直接回答OP,而是一个有趣的地方。Java可以三种方式运行:
-Xint
标志-已解释-仅字节码-Xcomp
标志-编译-机器编译-Xcomp
因为我在JDK 7文档或HotSpot选项文档中找不到那个,并且不确定您是否有一些隐藏的邮件列表秘密,我们这些凡人都不知道:-)
javac
吗?使用-Xcomp时,默认情况下是否输出单个二进制文件?
使用System.getProperty(“ os.name”)检测操作系统可能会更好。这样一来,您就可以选择支持多个操作系统,而排除其他操作系统。
java -Dos.name=MacOS
。
现在是:GraalVM允许您提前将程序编译为本地可执行文件。看一下本机图像功能:
摘要
https://www.graalvm.org/docs/getting-started/#native-images
演示:本地图像,可加快启动速度
https://www.graalvm.org/docs/examples/native-list-dir/
详细信息:“提前编译”
https://www.graalvm.org/docs/reference-manual/aot-compilation/
相关问题:“我可以将Java编译为本机代码吗?” https://stackoverflow.com/questions/2991799/can-i-compile-java-to-native-code/50555050#50555050
PS GCJ不再维护。
资料来源:“ gcj的删除” http://tromey.com/blog/?p=911