当我使用 ctrl +右键单击打开一个特定的类时,我应该被重定向到一个包含所有行和相应注释的java源窗口。但是我得到了一个带有反编译的.class文件的窗口。
我尝试停用反编译插件但不起作用。
如果我将http://docs.oracle.com/javase/8/docs/api添加到项目结构 - > SDKs - >文档路径我可以概述我翻过的课程或方法,但仍然无法打开正确的源文件。
有什么想法吗?
答案 0 :(得分:10)
在导航到消息来源时,IDEA将首先转到附加来源。如果不存在,它将反编译并显示它。
请尝试以下问题排查来追踪问题:
<强> 1。确保源已正确连接。
对于库,打开“项目结构”对话框( Ctrl + Alt + Shift + S 或⌘ ; )和sel4ct&#34; Libraries&#34;在左边的&#34;项目设置&#34;。找到有问题的库,然后选择它。它将显示源是否附加。你提到你有Maven&#34;自动下载&#34;来源/文件都经过检查。因此,对于任何有源可用的maven库,应该列出它。
如果未列出或为红色,请运行&#34;下载源&#34;或&#34;下载资源和文档&#34;来自Maven工具窗口的。如果源为红色,则可能意味着它不可用于maven存储库中的该工件。使用Maven Search进行验证。
对于JDK,选择&#34; SDKs&#34;在Project Structure对话框中,找到JDK,然后选择&#34; Sourcepath&#34;标签。确保列出{jdk-home} /src.zip文件。
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
的选择。