如何在IntelliJ IDEA中查找第三方库内方法与字段的引用?
高效查找minecraft.jar中类成员引用的IntelliJ技巧
我太懂你这种手动反编译打包的痛苦了——之前我也折腾过好多次,后来才发现IntelliJ本身就有完美解决这个问题的方法,根本不用这么麻烦!
下面给你几个实用的方案,让你轻松找到MinecraftVersion.INSTANCE字段的使用位置和create()方法的调用处:
方案1:直接把minecraft.jar添加为项目库并启用反编译
- 打开你的IntelliJ项目,右键点击项目根目录,选择
Open Module Settings(或者直接按F4快捷键) - 切换到
Libraries标签页,点击左上角的+号,选择Java,然后找到你的minecraft.jar文件添加进来 - 确保IntelliJ的反编译工具正常启用:
- 打开
Settings(快捷键Ctrl+Alt+S),依次找到Build, Execution, Deployment→Compiler→Java Compiler - 在
Decompiler区域,确认选中的是IntelliJ IDEA decompiler,并勾选相关的反编译选项
- 打开
- 完成后,你可以在项目视图里展开这个库,找到
net.minecraft.MinecraftVersion类。右键点击INSTANCE字段或者create()方法,选择Find Usages(Alt+F7),就能看到所有的引用位置了,甚至还能直接跳转到对应的反编译代码里
方案2:给现有依赖附加反编译源码
- 如果你的项目已经通过构建工具(比如Maven、Gradle)间接依赖了minecraft.jar,那就更简单了:在项目的
External Libraries里找到这个jar - 右键点击它,选择
Attach Sources,在弹出的窗口里直接选Decompile选项 - IntelliJ会自动反编译这个jar并生成临时的源码文件,之后你就能像操作自己项目里的代码一样,用
Alt+F7(查找所有引用)、Ctrl+Alt+F7(快速显示引用位置)这些快捷键来查找你需要的内容了
方案3:直接打开minecraft.jar作为临时项目
- 不想动现有项目的话,直接打开
File→Open,选中minecraft.jar文件,IntelliJ会把它当作一个独立的临时项目打开 - 在这个临时项目里,你可以直接导航到
net.minecraft.MinecraftVersion类,然后用所有你熟悉的查找快捷键,完全不需要手动打包到其他项目里
之前你用快捷键没效果,本质是因为IntelliJ没法解析未关联源码的jar文件里的类成员,只要让它能访问到反编译后的内容,这些快捷键就会正常工作啦!
内容的提问来源于stack exchange,提问作者Teddy Li
相关产品推荐
相关产品推荐

