繁体   English   中英

在IntelliJ中显示的Java源文件是一个空的反编译类文件

[英]Java source file displaying in IntelliJ as an empty decompiled class file

我有一个包含几个.java文件的项目,我可以在IntelliJ中查看完美的源代码,除了一个。

该文件与其他文件一样是.java文件,但IntelliJ将其标记为“Decompiled .class file”,源文件完全为空。 如果我在文本编辑器中打开文件,我可以看到源正常。 Ant构建也适用于此文件。

这些不是缺少的JDK源,您可能希望看到反编译的代码。 这不是我正在打开的已编译的.class文件。

从项目中删除文件并从源代码控制更新以恢复它似乎没有帮助。

这是我尝试在IntelliJ中打开文件时的样子:

IntelliJ <code> .java </ code>文件为Decompiled <code> .class </ code>文件

什么可能会导致IntelliJ中的这种行为,我该怎么做才能解决它?

如果同一个类(比较完全限定名称)同时存在于您的项目中并同时来自第三方依赖项,则IntelliJ将会感到困惑。

如果您在编辑器窗口中打开反编译类并按“下载源”操作,则也会发生依赖关系。 这导致另一个编辑器窗口打开刚刚下载的同一类的源代码,并且IntelliJ导航进入疯狂( Ctrl + Left click跳转和其他操作)。

我所知道的唯一解决方案是重启IntelliJ并希望它能正常工作。 您还可以尝试File > Invalidate Caches and Restart ,这将强制IntelliJ重新索引世界。

我最终解决了我的问题。

不知何故,我无意中将单个文件的名称添加到Java类File Types列表中,因此该文件以与实际.class文件相同的方式与反编译的.class文件相关联。

修复程序将转到Settings (Ctrl+Alt+S)EditorFile Types ,在已Recognized File Types列表中向下滚动到Java类,在已Registered Patterns列表中选择文件名,然后单击Remove按钮。

设置,编辑器,文件类型菜单

我没弄清楚它是如何自动添加到该列表中的。 一个猜测是我可能已接受建议弹出窗口或选择了错误的意向操作,因此打开或活动文件的名称已添加到.class类型列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM