Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字节码转换为机器本机代码_Java_Bytecode_Aot - Fatal编程技术网

Java 如何将字节码转换为机器本机代码

Java 如何将字节码转换为机器本机代码,java,bytecode,aot,Java,Bytecode,Aot,我正在寻找一个转换器,用于在执行之前将Java字节码转换为机器本机代码,以提高性能 我听说OpenOffice是用JAVA制作的,但我在他的安装文件夹中看不到任何jar文件,因此,可能有一个翻译器,但我找不到 有人知道一些工具或商业产品可以做到这一点吗 谢谢 有多种解决方案。这些都不理想 看一看(exe4j)。要了解更多信息,请阅读此内容。请看一看JVM。请参阅我对这个问题的回答,了解如何嵌入它以及可以使用哪些类库来生成独立的可执行文件 如果您只需要托管语言/平台,也可以使用。查看Mono 2.

我正在寻找一个转换器,用于在执行之前将Java字节码转换为机器本机代码,以提高性能

我听说OpenOffice是用JAVA制作的,但我在他的安装文件夹中看不到任何jar文件,因此,可能有一个翻译器,但我找不到

有人知道一些工具或商业产品可以做到这一点吗


谢谢

有多种解决方案。这些都不理想


看一看(exe4j)。要了解更多信息,请阅读此内容。

请看一看JVM。请参阅我对这个问题的回答,了解如何嵌入它以及可以使用哪些类库来生成独立的可执行文件

如果您只需要托管语言/平台,也可以使用。查看Mono 2.x附带的mkbundle工具。

请查看。
它可以从您的jar构建一个本机映像,并将其作为二进制(本机代码)运行。

您看过GCJ(GCC Java编译器吗?)JVM本身包含一个JIT编译器,可以在需要时将字节码转换为机器码,但市场上的工具通常只是将JVM包装在一个可执行文件中,就像ExcelsiorJET一样-只是给你一个关键字来搜索:你正在寻找一个AOT(提前)编译器。你可能看不到jar有很多原因-自定义类加载器可以读取它喜欢的任何格式。所以我对OpenOffice的领先地位不抱太大希望。JVM不仅在运行时将字节码编译成机器码,而且做得相当好。我建议您使用一种性能分析器工具(例如,Netbeans中有一种工具)来确定代码的关键部分,并自己尝试改进。如果你不能,那么把你的具体表现问题作为一个问题发布出来。AOT编译的代码可能会慢一些,除非您只对更好的启动时间感兴趣。我不认为exe4j是AOT-它不会预编译为本机代码,AFAICT。