web-dev-qa-db-ja.com

IntelliJはソースコードの代わりに逆コンパイルされた.classファイルを表示します

IntelliJに問題があります。クラスをCtrlキーを押しながらクリックすると、ソースコードではなく、クラスの「逆コンパイル済み」バージョンが表示されます。

これは私が見るものです:

Decompiled class message

通常のJDKソースファイルを開こうとしています。

私が見つけた最も関連性のある問題は、ここで説明されています: Intellijで逆コンパイルされたファイルに置き換えられたJavaソース

私がこれまでに見つけた最も詳細な答えもあります。

しかし、それは私にとってはうまくいきません:

  1. バイトコードビューアープラグインはオフです。

  2. Java Bytecode Decompilerプラグインはオフです。

  3. プラットフォーム、プロジェクト、およびモジュールのJDKバージョン設定はすべて同じです。

  4. IntelliJでは、jdk1.8.0_161とjbsdk8u112b287.2_windows_x86の2つのJDKを使用できます(IntelliJにバンドルされていますが、src.Zipは付属していません)。両方で試してみました(jbsdk8u112b287.2_windows_x86に対してjdk1.8.0_161のsrc.Zipを指定する必要がありました)-運がありません

  5. src.Zipは破損していません-WinRARで開くことができます

  6. Jdk1.8.0_161をIntelliJに追加すると、src.Zipが自動的に見つかりました。 src.Zipをjbsdk8u112b287.2_windows_x86 Sourcepathタブに手動で追加すると、「ルートのスキャン」が開始されましたが、「選択したアイテムに含まれるファイルの種類を判別できない」と警告され、「それらを「ソース」として添付する」同意した。

  7. [ファイルの試行]> [キャッシュの無効化/再起動...]-同じ結果。

  8. IntelliJの2017.3と2018.1の最新バージョンで同じ問題。

  9. ドキュメントのパスを指定すると、IntelliJは指定されたパスでドキュメントを検索します。したがって、両方のJDKで正常に機能します。しかし、ソースではありません。

  10. それ以外はすべて正常に動作/コンパイルされます。

私の設定:

Settings

20
takeoff

1.ソースファイルを取得する

JDKのソースファイルをダウンロードしてインストールしたことを確認してください。

私はArch Linuxを使用しており、pacman -S openjdk8-srcsrc.Zip into /usr/lib/jvm/Java-8-openjdk/。次の手順では、このZipファイルを使用します。

さまざまなJDKバージョンのソースパッケージを一覧表示するには、pacman -Ss "openjdk.*-src"

特定のプラットフォームのソースファイルを取得する方法については、 この質問 を参照してください。

2. IntelliJがソースファイルを指すようにします

モジュールの設定で(で開きます F4)「プラットフォーム設定」→「SDK」→「ソースパス」で、プラス記号の付いたボタンを使用して、JDKソースを含むZipファイルをプロジェクトJDKに追加します(IntelliJに複数のJDKがリストされている場合は必ず正しいJDKを選択してください) :

Sourcepath screenshot

3.ソースにジャンプします

IntelliJの Search Everywhere を使用して、ComparatorなどのJDKクラスを選択します。 Ctrl+b クラスの名前にカーソルを合わせます。

Comparator source

7
Matthias Braun

Mavenプロジェクトを使用している場合は、プロジェクト構造で、すべての準拠フォルダーが除外セクションにあることを確認してください。 enter image description here

0

私は同じ問題に出会い、JDKを別のフォルダーにコピーしてIntelliJの設定を変更した後、最終的に消えました。 「Program Files」フォルダーの下にインストールされているため、前にパスにスペースがある可能性があります。

0
Xilang