将 java 源代码编译为本机 exe

Compiling java source code to native exe

是否可以像 C++ 一样将 java 源代码编译成原生 exe? 与 C++ 一样,所有头文件在编译期间都包含在内,所有需要的 java 库文件都应附加在该 exe 中,并且该 exe 不应是字节码,而应是本机 exe 并且 运行 没有 jvm。

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

注意:我说的不是在exe中包装java类并最终需要jvm的加壳器。

据我所知,唯一的本地代码 Java 编译器是 The GNU Compiler for the Javatm Programming Language.

极不可能您真的需要一个本地代码编译器。打包程序(如您已解雇的打包程序)可以使您的程序完全自包含,包括无缝安装私有 JVM。强烈推荐你check out the options in this question and its answers.

"GCJ is a portable, optimizing, ahead-of-time compiler for the Java Programming Language. It can compile Java source code to Java bytecode (class files) or directly to native machine code, and Java bytecode to native machine code."

见: https://gcc.gnu.org/java/

我最近尝试了 Excelsior JET,它非常适合将 JAR 编译成本机 Windows 二进制文件。 JetpackII 实用程序允许您在目标计算机上部署应用程序而无需 Java 安装。习惯起来可能有点复杂,但总的来说是一个不错的选择。

截至 2020-05 年,当前选项包括:

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