将java源代码编译为本机exe

Kas*_*ara 8 c++ java native object

是否可以像 C++ 一样将 java 源代码编译成本机 exe?像C++一样,所有的头文件在编译过程中都包含在内,所有需要的java库文件都应该附在那个exe中,这个exe不应该是字节码,而是本机exe,并且在没有jvm的情况下运行。

所以我想知道的是..如果我可以用Java语法替换所有C++语法并编译成一个exe文件,就像由C++编译器创建的直接运行的文件一样。

注意:我不是在谈论将 java 类包装在 exe 中并最终需要 jvm 的打包程序。

T.J*_*der 7

据我所知,唯一的本地代码 Java 编译器是The GNU Compiler for the Java tm编程语言

但你不太可能真的需要一个本地代码编译器。像您已经放弃的那些加壳器可以使您的程序完全独立,包括无缝地安装私有 JVM。我强烈建议您查看此问题中的选项及其答案

  • [参见这个 SO 答案](/sf/answers/10306131/) >“GCJ 已死。它于 2016 年正式从 GCC 项目中删除。” 请参阅 @RichardCritten 的回答的评论 (> [文档](https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcj)) (> [关于删除的声明](https://tromey.com/blog /?p=911))。 (3认同)

Ali*_*mir 7

截至 2020 年 5 月,当前选项包括:

  • javapackager(在 openFX 中,将精简的 JRE 添加到可执行文件)
  • launch4J(35kb 外部依赖项,检查并下载或包含 JRE 的选项)
  • GraalVM 本机映像用于真正精简的可执行文件(但需要更多配置以使用反射)

  • javapackager 在 Java 16 中被 [`jpackage`](https://openjdk.org/jeps/392) 取代。 (2认同)