如何将 Procyon 反编译器与 Diffoscope 一起使用

How to use Procyon Decompiler with Diffoscope

我在 Ubuntu Bionic 上使用 运行 Diffoscope,当我打开调试日志 (--debug) 时,我注意到很多这样的行(每个 .class 文件一个在 JAR):

diffoscope.comparators.java: Unable to find ProcyonDecompiler. Falling back...

我安装了软件包 procyon-decompiler,但错误仍然存​​在。如何使 Diffoscope 与 Procyon 一起使用?我找不到关于此集成的任何文档!

通过阅读 diffoscope 的 Python 来源,我发现 diffoscope 需要路径中名为 procyon-decompiler 的可执行文件。

/usr/lib/python3/dist-packages/diffoscope/comparators/java.py:L40:

@tool_required('procyon-decompiler')
def cmdline(self):
    return ['procyon-decompiler', '-ec', self.path]

在 Ubuntu Bionic 中,procyon-decompiler 软件包将 Procyon 安装为 procyon 而不是 procyon-decompiler。我通过创建一个符号 link 来完成这项工作。例如:

ln -s /usr/bin/procyon ~/.local/bin/procyon-decompiler