Java源代码由Intellij中的反编译文件替换

时间:2016-07-16 15:39:29

标签: intellij-idea settings src decompiler

当我使用 ctrl +右键单击打开一个特定的类时,我应该被重定向到一个包含所有行和相应注释的java源窗口。但是我得到了一个带有反编译的.class文件的窗口。

我尝试停用反编译插件但不起作用。

如果我将http://docs.oracle.com/javase/8/docs/api添加到项目结构 - > SDKs - >文档路径我可以概述我翻过的课程或方法,但仍然无法打开正确的源文件。

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

在导航到消息来源时,IDEA将首先转到附加来源。如果不存在,它将反编译并显示它。

请尝试以下问题排查来追踪问题:

<强> 1。确保源已正确连接。

对于库,打开“项目结构”对话框( Ctrl + Alt + Shift + S ; )和sel4ct&#34; Libraries&#34;在左边的&#34;项目设置&#34;。找到有问题的库,然后选择它。它将显示源是否附加。你提到你有Maven&#34;自动下载&#34;来源/文件都经过检查。因此,对于任何有源可用的maven库,应该列出它。

enter image description here

如果未列出或为红色,请运行&#34;下载源&#34;或&#34;下载资源和文档&#34;来自Maven工具窗口的enter image description here。如果源为红色,则可能意味着它不可用于maven存储库中的该工件。使用Maven Search进行验证。

对于JDK,选择&#34; SDKs&#34;在Project Structure对话框中,找到JDK,然后选择&#34; Sourcepath&#34;标签。确保列出{jdk-home} /src.zip文件。

enter image description here

IDEA应该在添加JDK时自动设置,但如果没有,请添加它。

<强> 2。确保源JAR / ZIP文件没有损坏

导航到资源管理器/查找程序中的存档,并确保可以打开和查看它。

第3。刷新IDEA的缓存

IDEA的缓存/索引可能已损坏。因此,IDEA并没有“看到&#34;类和源代码之间的链接。转到文件&gt;无效缓存/重新启动... &#34;。使缓存无效并重新启动IDEA。等待IDEA完成对项目和库的重新索引(观察IDEA窗口右下角的进度)。

以上其中一项应解决此问题。

仅供参考,如果您不希望IDEA反编译代码(作为备份到没有源存在),据我所知(并基于its help page),唯一的方法是禁用&#34; Java字节码反编译器&#34;在插件列表中。

答案 1 :(得分:0)

在确保我的源已附加,检查源ZIP,使IntelliJ缓存无效并重新启动之后,我仍然遇到相同的问题。

要修复此问题,我重新创建了一个项目File > New > Project From Existing Sources...,当进入库选择步骤时,我为自己的模块取消了.jars的选择。