如何在Intellij中的反编译.class文件中搜索字符串

时间:2017-07-19 14:33:24

标签: java intellij-idea

是否可以使用Find in Path搜索反编译的.class文件中的特定字符串( Ctrl + Shift + F )在Intellij?

我想搜索一下我没有源代码的库代码。

尽管字符串在编辑器中存在(并且可见),但查找不会弹出任何结果。

2 个答案:

答案 0 :(得分:14)

如果事先手动反编译所有类并将反编译的源附加到要搜索的库中,则无法实现。

  

IntelliJ IDEA在路径中查找仅适用于源文件和资源文件。它不会搜索二进制.class文件。导航到.class文件时看到的是该类的反编译版本。反编译是动态执行的,IDE不会自动反编译和索引所有.class文件,因此没有可用的索引,也无法执行快速搜索。这种功能虽然在技术上可行,但需要对所有依赖项进行反编译和索引,这可能需要花费大量时间和系统资源,尤其是在具有大量依赖项的项目中。

     

通常,您可以使用所依赖的库。对于Gradle / Maven项目,IntelliJ IDEA可以自动下载和配置这些源,因此在路径中查找将在库内部使用大多数用户/项目的附加源。

     

如果库没有源,您可以使用命令行批量反编译器对整个库执行脱机反编译,并将包含反编译源的目录附加到库中。

引自IntelliJ IDEA论坛中的this answer

答案 1 :(得分:-5)

在路径中查找(Ctrl + Shift + F) in IntellijScope > All Places应该搜索所有地方的用法(甚至在您的图书馆中)

注意:虽然这不会在反编译类中搜索。这有助于您搜索所有文件。