[英]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
然后我們運行這個類文件進行輸出。
有沒有辦法為 Java 代碼生成預處理、編譯和匯編文件?
不會。Java 編譯器生成字節碼(包含在.class
中),沒有中間步驟。
JIT 編譯器隨后生成匯編代碼和機器代碼,在運行程序時可以通過給出適當的標志來查看這些代碼。
.class
文件已經是一個“中間”文件。 然后 Java 虛擬機接受它並執行它(解釋或編譯它認為合適的,通常兩者兼而有之!)
如果類文件未被混淆,您可以使用反編譯器輕松反匯編內容,因為所有/大多數符號都被保留(如 C/C++ 中的調試符號)。 一些 IDE 允許您打開一個 .class 文件並查看反匯編代碼(想到 IntelliJ 和 NetBeans)
IntelliJ 顯示反編譯的代碼,就像您正在查看 regular.java 文件一樣,盡管沒有注釋,有時只有 1 個字母的變量。 您可以使用菜單選項查看字節碼(反匯編)(即使是您自己的源代碼,只要它已編譯)。
NetBeans 僅將其顯示為字節代碼,但仍按方法分組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.