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

问题描述 投票:0回答:2

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

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

如果我将 http://docs.oracle.com/javase/8/docs/api 添加到项目结构 -> SDK -> 文档路径,我可以获得我正在滚动的类或方法的概述,但是仍然无法打开正确的源文件。

有什么想法吗?

intellij-idea settings src decompiler
2个回答
16
投票

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

尝试以下故障排除来查找问题:

1。确保源已正确连接。

对于库,打开项目结构对话框(Ctrl+Alt+Shift+S;)并选择左侧“项目设置”下的“库”。找到有问题的库,然后选择它。它将显示是否附加了源。你提到你已经检查了 Maven 的“自动下载”源/文档。因此,对于任何有可用源代码的 Maven 库,都应该列出它。

如果未列出或呈红色,请从 Maven 工具窗口运行“下载源代码”或“下载源代码和文档”。如果源一直呈红色,则可能意味着 Maven 存储库中的该工件不可用。使用 Maven Search 来验证这一点。

对于 JDK,在“项目结构”对话框中选择“SDK”,找到 JDK,然后选择“源路径”选项卡。确保列出了 {jdk-home}/src.zip 文件。

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

2。确保源 JAR/ZIP 文件未损坏

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

3.刷新IDEA的缓存

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

上述其中一项应该可以解决问题。

仅供参考,如果您不希望 IDEA 反编译代码(作为不存在源的备份),据我所知(并且基于其帮助页面),唯一的方法是禁用插件列表中的“Java Bytecode Decompiler”。


0
投票

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

为了解决这个问题,我重新创建了项目

File > New > Project From Existing Sources...
,当我进入库选择步骤时,我取消选择了我自己的模块的
.jars

© www.soinside.com 2019 - 2024. All rights reserved.