2016-07-16 128 views
4

當我使用ctrl +右鍵單擊打開特定類時,我應該被重定向到一個包含所有行和相應註釋的java源文件的窗口。但是,我得到了一個帶有反編譯的.class文件的窗口。在Intellij中用反編譯文件替換Java源代碼

我試圖停用反編譯插件,但它不起作用。

如果我將http://docs.oracle.com/javase/8/docs/api添加到項目結構 - > SDK - >文檔路徑中,我可以概述我正在翻轉的類或方法,但仍無法打開正確的源文件。

任何想法?

+0

我不認爲你看到反編譯的類文件,而是佔位符。我認爲你需要附上來源。 IntelliJ Maven項目自動完成AFAIK。 –

+0

Maven的「自動下載」源代碼/文檔都被檢查 –

回答

7

導航到源時,IDEA將首先轉到附加源。如果不存在,它將反編譯並顯示它。

嘗試以下故障排除追查問題:

1.確保來源正確連接。

對於庫,打開項目結構對話框(Ctrl鍵 + Alt鍵 + + 小號;)和sel4ct 「庫」 左側下 「項目設置」 。找到有問題的庫,並選擇它。它會顯示源是否已連接。你提到你有Maven的「自動下載」源代碼/文檔都被檢查過。因此,對於任何有源代碼的Maven庫,應該列出它。

enter image description here

如果未列出或爲紅色,運行「下載源」或「下載源代碼和文檔」從Maven的工具窗口enter image description here。如果源代碼爲紅色,則可能意味着它不適用於Maven存儲庫中的該工件。使用Maven Search來驗證。

對於JDK,請在「項目結構」對話框中選擇「SDK」,找到JDK,然後選擇「源路徑」選項卡。確保列出了{jdk-home} /src.zip文件。當您添加的JDK

enter image description here

IDEA會自動設置這個,但如果沒有,添加它。

2.確保源JAR/ZIP文件未損壞

導航到資源管理器/取景器的歸檔文件,並確保它可以打開和查看。

3.刷新IDEA的緩存

這有可能是IDEA的緩存/索引損壞。因此,IDEA不會「看到」類和源代碼之間的鏈接。轉至文件>使緩存失效/重新啓動...「。使緩存無效並重新啓動IDEA。等待IDEA完成項目和庫的重新索引(觀看IDEA窗口右下角的進度)。

其中之一應該可以解決問題。如果您不希望IDEA反編譯代碼(作爲備份到沒有源存在),據我所知(並根據its help page),唯一的方法是禁用IDEA插件列表中的「Java Bytecode Decompiler」。

+2

步驟2對我來說是個問題。感謝您的詳細解答。 –