Intellij Idea 如何使用fernflower反编译正确的行号?

o75abkj4  于 2023-03-01  发布在  其他
关注(0)|答案(3)|浏览(782)

我正在使用Intellij Idea 14与大java项目,其中大量的代码编译和w/o源代码。
据我所知,Idea不能在编译代码中进行搜索(如eclipse所做的),但它可以使用内置的fernflower反编译单个文件,这也提供了通过编译代码进行调试的可能性。
是否有一种方法可以像Idea那样一次反编译所有编译的代码,并将其附加到项目中,以便可以搜索“项目和库”,而不会在反编译的源代码中丢失调试功能?
我尝试过使用Bytecodeviewer和不同的fernflower选项,但是结果是在附加反编译的源代码后调试中断(显示错误的行)。

ut6juiuv

ut6juiuv1#

我发现在OSX上可以在以下文件中更改此设置:
~/Library/Preferences/IntelliJIdea2016.1/options/options.xml
添加以下属性:

<property name="decompiler.use.line.mapping" value="true" />
    <property name="decompiler.dump.original.lines" value="true" />
46scxncf

46scxncf2#

好的,因为没有关于这个的新闻,我已经创建了一个小插件,它使用内置的Intellijfernflower decompiler将jar文件与编译代码反编译成新的*-sources.jar文件,并将源代码附加到项目中。任何人都有兴趣,可以在jetbrains插件库中看看decompile and attach插件
更新回答我关于使用fernflower反编译代码中行号的问题。我在Intellijfernflower中发现了“decompiler.use.line.table”标志,它保留行号。

ilmyapht

ilmyapht3#

如果您正在使用名为Quiltflower的新插件,请使用下面的“转储原始行”选项

Tools ➡ Quiltflower

它将在每行末尾添加一个注解,并使用原始行号。

相关问题