2016-07-16 91 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对我来说是个问题。感谢您的详细解答。 –