如何使用fernflower使用正确的行号进行反编译?
我正在使用Intellij Idea 14
与大型Java项目一起工作,其中大量代码被编译并且没有源代码。
据我所知, Idea
无法在编译代码中进行搜索(就像eclipse
一样),但它可以使用内置的fernflower
反编译单个文件,这也可以通过编译代码进行调试。
有没有办法像IDE一样反编译所有编译后的代码,并将其附加到项目中,这样就可以在反编译的源代码中通过“项目和库”搜索不到调试功能的项目?
我试过使用不同的fernflower
选项来使用Bytecodeviewer
,但结果是在附加了反编译的源代码之后调试被打破了(显示错误的行)。
我发现在OSX上你可以在下面的文件中改变这个设置:
〜/库/首选项/ IntelliJIdea2016.1 /选项/ options.xml
添加以下属性:
<property name="decompiler.use.line.mapping" value="true" />
<property name="decompiler.dump.original.lines" value="true" />
好吧,因为没有关于这方面的消息,我创建了一个小插件,它使用内置的Intellij
fernflower
反编译器将带有编译代码的jar文件反编译到新的*-sources.jar
文件中,并将源文件附加到项目中。 任何感兴趣的人,都可以看看decompile and attach
插件并在jetbrains插件库中decompile and attach
插件
使用fernflower
更新回答我关于反编译代码中行号的问题。 我在Intellij
的fernflower
发现了' decompiler.use.line.table
'标志,它保留了行号。
上一篇: How to decompile with correct line numbers using fernflower?
下一篇: iOS Twitter Kit usage gets error 'Request failed: forbidden'