IntelliJ跳转JDK类显示反编译文件而非源码问题求助
我之前也碰到过一模一样的糟心问题!明明想查看JDK的原生源码,按下Ctrl+点击类名后跳出来的却是反编译的字节码文件,而且试过关闭Bytecode Viewer、Java Bytecode Decompiler插件,调整Platform/Project/Module这些常规配置都不管用,后来摸索出几个更深入的排查点,你可以挨个试试:
检查JDK源码的关联状态
打开File → Project Structure → SDKs,选中你当前使用的JDK,切换到Sourcepath标签页。这里要确认有没有正确添加JDK的源码包(通常是src.zip或者jdk.src.zip),如果没有的话点击加号手动添加;如果已经存在,试试先移除再重新添加一遍——有时候路径关联会莫名出问题。另外一定要注意:源码包的版本必须和你当前使用的JDK版本完全匹配,版本不匹配也会导致IDE无法识别源码,只能显示反编译内容。清除IntelliJ缓存并重启
缓存混乱是IDE出现各种奇怪问题的常见元凶。你可以通过File → Invalidate Caches...,选择Invalidate and Restart选项,让IDE彻底清理缓存后重启。这个操作对很多顽固的IDE异常都有奇效,不妨优先试试。检查“Go to Declaration”的行为设置
打开Settings → Editor → General → Code Navigation,找到和Go to Declaration相关的配置项,确保没有勾选任何强制跳转到反编译文件的选项。另外也可以去Settings → Build, Execution, Deployment → Compiler → Java Compiler里看看,有没有开启特殊的编译选项干扰了源码识别。排查模块级别的JDK配置
有时候模块的局部配置会覆盖全局SDK设置。进入File → Project Structure → Modules,选中你的项目模块,切换到Dependencies标签页,检查JDK依赖是不是关联了带源码的完整SDK,而不是只关联了JRE或者不带源码的精简版JDK。尝试重新导入项目
如果以上方法都没用,大概率是项目的配置文件本身出了问题。你可以先备份好项目,然后删除项目根目录下的.idea文件夹和所有.iml文件,再重新用IntelliJ导入项目,让IDE重新生成全新的配置文件——这种方法往往能解决一些根深蒂固的配置冲突问题。
内容的提问来源于stack exchange,提问作者takeoff

