IntelliJ显示反编译的.class文件而不是源代码

时间:2018-03-29 13:56:27

标签: intellij-idea settings decompiler

我遇到IntelliJ的问题 - 它向我展示了一个"反编译的"如果我按住Ctrl键并单击该类,则该类的版本而不是其源代码。

这就是我所看到的:

Decompiled class message

我正在尝试打开常规的JDK源文件。

我在此处解释了最相关的问题:Java sources replaced by decompiled files in Intellij

到目前为止,我发现的最详细答案也是如此。

但它对我不起作用:

  1. Bytecode Viewer插件已关闭。

  2. Java Bytecode Decompiler插件已关闭。

  3. 平台,项目和模块都具有相同的JDK版本设置。

  4. 我在IntelliJ中有两个JDK:jdk1.8.0_161和jbsdk8u112b287.2_windows_x86(与IntelliJ捆绑在一起,但没有src.zip)。尝试两者(必须为jbskk指定src.zip jdk1.8.0_161为jbsdk8u112b287.2_windows_x86) - 没有运气

  5. src.zip没有损坏 - 我可以通过WinRAR打开它

  6. 将jdk1.8.0_161添加到IntelliJ时,会自动找到src.zip。当手动将src.zip添加到jbsdk8u112b287.2_windows_x86 Sourcepath选项卡时 - 它开始"扫描根和#34;但警告我它"无法确定所选项目包含哪种文件"并邀请我将他们作为'来源'"所以我同意了。

  7. 尝试过的文件>无效缓存/重新启动... - 结果相同。

  8. 2017.3和IntelliJ的新2018.1版本中的相同问题。

  9. 提供文档路径使IntelliJ在指定的路径中查找文档。所以它适用于两个JDK。但不是来源。

  10. 其他所有工作/正确编译。

  11. 我的设置:

    Settings

11 个答案:

答案 0 :(得分:3)

1。获取源文件

确保已下载并安装了JDK的源文件。

我在Arch Linux上安装了pacman -S openjdk8-src,并将src.zip放入/usr/lib/jvm/java-8-openjdk/。下一步,我们将使用该zip文件。

有关如何获取特定平台的源文件,请参见this question

2。将IntelliJ指向源文件

在“平台设置”->“ SDK”->“源路径”下的模块设置(使用 F4 打开它们)中,将包含JDK源的zip文件添加到项目JDK中(如果IntelliJ列出了多个JDK,请确保选择正确的JDK,请使用带有加号的按钮:

Sourcepath screenshot

3。跳到源中

使用IntelliJ的Search Everywhere Ctrl + b 选择一个JDK类,例如Comparator,并将光标放在类的名称上。

Comparator source

答案 1 :(得分:1)

我也有同样的问题。我的情况是,Project SDK设置为13 [Invalid]。之后,我可以Project SDK使用有效的SDK。我的问题解决了。

Project Structure

答案 2 :(得分:0)

如果您在Maven项目中,请确保在项目结构中,所有符合条件的文件夹都在排除的部分中。 enter image description here

答案 3 :(得分:0)

我遇到了同样的问题,最终在我将JDK复制到另一个文件夹并在IntelliJ中更改配置后消失了。我认为可能是因为路径之前存在空格,因为它安装在“ Program Files”文件夹下。

答案 4 :(得分:0)

  1. 我建议使用Linux而不是Windows。查找和下载Java很容易。
  2. 如果您使用的是Linux,则可以enter image description here
  3. download SDKMAN,由SDKMAN
# find version
$ sdk list java
# download
$ sdk install java x.y.z-amzn
  1. ctrl+alt+shift+s添加JDK Install Java

  2. 切换项目JDK enter image description here

答案 5 :(得分:0)

这对于大文件也会发生 - IDEA 决定反编译它们,如果索引源,这可能需要很长时间。 如果您愿意接受缩编,请在Help | 中添加以下内容。编辑自定义属性可能会解决问题:

idea.max.intellisense.filesize=4096

答案 6 :(得分:0)

如果您使用的是 maven ,请右键单击项目资源管理器 -> 选择 Maven -> 选择“重新加载项目”

答案 7 :(得分:0)

在我的 Windows 10 上,展开 maven:

enter image description here

答案 8 :(得分:-1)

这对我有用:

确保选择选项“项目文件”(而不是“项目”)。

screenshot

答案 9 :(得分:-1)

要下载属于jar的类文件的源代码,可以使用反编译后的类文件右上角的download source选项。

enter image description here

答案 10 :(得分:-1)

为此,我尝试了其他地方提到的所有事情,但最后我犯了一个愚蠢的错误。 Intellij指向没有源代码的JDK 11(我同时拥有SDK 8和11)。我删除了JDK 11并指向JDK8。JDK具有源代码,因此现在可以在ctrl单击上看到源代码。另外,我禁用了字节码查看器和反编译器插件。希望这可以帮助一些人。