如何使用蕨类植物用正确的行号反编译?

2022-09-04 03:08:59

我正在使用大型Java项目,其中编译了大量代码和无源。Intellij Idea 14

据我所知,无法在编译代码中进行搜索(确实如此),但它可以使用内置功能反编译单个文件,这也提供了通过编译代码进行调试的可能性。Ideaeclipsefernflower

有没有办法像Idea一样一次反编译所有编译的代码并将其附加到项目中,以便可以在反编译源代码中不丢失调试功能的情况下搜索“项目和Libs”?

我尝试过使用不同的选项,但结果是在附加反编译的源代码后,调试被中断(显示错误的行)。Bytecodeviewerfernflower


答案 1

我发现在OSX上,您可以在以下文件中更改此设置:

~/Library/Preferences/IntelliJIdea2016.1/options/options.xml

添加以下属性:

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

答案 2

好吧,由于没有关于此的消息,我创建了一个小插件,它使用内置反编译器将带有编译代码的jar文件反编译为新文件,并将源代码附加到项目。任何有兴趣的人,都可以看看jetbrains插件存储库中的插件*-sources.jarIntellijfernflowerdecompile and attach

使用 更新回答我关于反编译代码中行号的问题。我在's中发现了''标志,它保留了行号。fernflowerdecompiler.use.line.tableIntellijfernflower


推荐