簡體   English   中英

有什么命令可以獲取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

然后我們運行這個類文件進行輸出。

有沒有辦法為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM