procyon 编译手册

前言

procyon 是比较好的jar、class 反编译工具,但作者在编译上面言之过少,导致像我等小菜搞个Build都要折腾半天,这里分享一下 procyon的Build过程,大家少走点弯路。


价值

procyon 相对其他的反编译软件,反编译出来的java源码可读性更高。
  procyon 编译手册_第1张图片
各个反编译软件都会有其局限性,并不完美,procyon也有问题。

问题

这里有个问题,用procyon 处理的反编译文件,如果代码中包含try...catch 则很有可能出现下面这种恶心的情况。大家在使用时,可以结合其他的反编译软件灵活使用。(哪位大大知道如何解决这个问题还请不吝赐教)
  procyon 编译手册_第2张图片

前置工具

1. maven 3.2.5 或以上版本


编译

源码地址:https://bitbucket.org/mstrobel/procyon
点Downloads 选择 Download repository 也就是下载最新的源码打包文件。
(下面列表中有已经编译好的 jar 包,不想编译的同学直接下载使用就行了)
注意官方文档中的这句话
  procyon 编译手册_第3张图片
就这一句话就给带过了 = =
直接google Maven Central 打开 maven.org 搜索 procyon 注意不是文档中给出的 org.bitbucket.mstrobel 关键字,那个已经过时了!找到 org.jboss.windup.decompiler 把它的pom 文件保存到我们解压源码的目录 Procyon.Decompiler 目录下面,命名为 pom.xmls
  procyon 编译手册_第4张图片
项目还依赖 jcommander 包,直接下载 https://github.com/cbeust/jcommander/releases
解压后把 com 文件夹下的内容复制到 Procyon.Decompiler 的 com 文件夹下。
同样的把本地同级的 Procyon.CompilerTools、Procyon.Core、Procyon.Expressions、Procyon.Reflection 文件夹下的 com 目录下的文件都复制过去。(我对maven的理解不深哈,实际Build可能不用这一步的复制,哪位maven大神看到了还望不吝赐教啊)
cmd 到当前目录,运行 mvn compile 和 mvn package,如果一切顺利则会在 target 目录下生成 decompiler-procyon-2.6.0.Final.jar 就是我们的目标文件了。
此时jar 包清单文件还没有指定Main-Class 文件,打开jar 包找到MANIFEST.MF文件,加入下面内容 Main-Class:  com.strobel.decompiler.DecompilerDriver<回车>
到此编译就算完成了。


使用

java -jar decompiler-procyon-2.6.0.Final.jar -jar <要反编译的jar包.jar> -o <保存目录>


你可能感兴趣的:(学习,procyon,原创)