Java代码的编译中间文件有什么命令可以获取吗?
Are there any commands to get the intermediate files of Compilation for Java Code?
类似于 C 或 C++,您可以在其中获取中间文件是否有任何命令可以为 Java 代码获取相同的文件?
例如,
C文件可以生成,
Preprocessed File (Hello.i)
Compilation file (Hello.s)
Assembly File (Hello.o)
Executable File through Linker (Hello.exe)
在java我们做到了,
Executing --> Filename.java
we obtain --> Filename.class
然后我们运行这个class文件输出。
有没有办法为 Java 代码生成预处理、编译和汇编文件?
没有。 Java编译器生成字节码(包含在.class
中),没有中间步骤。
JIT 编译器然后生成汇编代码和机器代码,可以通过给定 而 运行 程序.[=11= 给出适当的标志来查看这些代码]
.class
文件已经是 'intermediate' 文件。 Java 虚拟机然后接受它并执行它(解释或编译它认为合适的,通常是两者!)
如果 class 文件未被 混淆,您可以使用反编译器轻松反汇编内容,因为 all/most 符号被保留(如调试符号在 C/C++ 中)。某些 IDE 允许您打开 .class 文件并查看反汇编代码(想到 IntelliJ 和 NetBeans)
IntelliJ 显示反编译代码,就好像您正在查看常规 .java 文件一样,尽管没有注释,有时只有 1 个字母的变量。您可以使用菜单选项查看字节码(反汇编)(即使是您自己的源代码,只要它已编译)。
NetBeans 显示它,afaik,仅作为字节代码,但仍按方法分组。
类似于 C 或 C++,您可以在其中获取中间文件是否有任何命令可以为 Java 代码获取相同的文件?
例如, C文件可以生成,
Preprocessed File (Hello.i)
Compilation file (Hello.s)
Assembly File (Hello.o)
Executable File through Linker (Hello.exe)
在java我们做到了,
Executing --> Filename.java
we obtain --> Filename.class
然后我们运行这个class文件输出。
有没有办法为 Java 代码生成预处理、编译和汇编文件?
没有。 Java编译器生成字节码(包含在.class
中),没有中间步骤。
JIT 编译器然后生成汇编代码和机器代码,可以通过给定 而 运行 程序.[=11= 给出适当的标志来查看这些代码]
.class
文件已经是 'intermediate' 文件。 Java 虚拟机然后接受它并执行它(解释或编译它认为合适的,通常是两者!)
如果 class 文件未被 混淆,您可以使用反编译器轻松反汇编内容,因为 all/most 符号被保留(如调试符号在 C/C++ 中)。某些 IDE 允许您打开 .class 文件并查看反汇编代码(想到 IntelliJ 和 NetBeans)
IntelliJ 显示反编译代码,就好像您正在查看常规 .java 文件一样,尽管没有注释,有时只有 1 个字母的变量。您可以使用菜单选项查看字节码(反汇编)(即使是您自己的源代码,只要它已编译)。
NetBeans 显示它,afaik,仅作为字节代码,但仍按方法分组。