java - 如何将 Procyon 反编译器与 Diffoscope 一起使用
问题描述
我在 Ubuntu Bionic 上运行 Diffoscope,当我打开调试日志 ( --debug
) 时,我注意到许多这样的行(每个.class
文件一个JAR
):
diffoscope.comparators.java: Unable to find ProcyonDecompiler. Falling back...
我安装了软件包procyon-decompiler
,但错误仍然存在。如何使 Diffoscope 与 Procyon 一起使用?我找不到有关此集成的任何文档!
解决方案
通过阅读 Python 的源代码diffoscope
,我发现它需要一个在路径中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
. 我通过创建符号链接完成了这项工作。例如:
ln -s /usr/bin/procyon ~/.local/bin/procyon-decompiler