这里讲解所用到的包就在阿里云盘中【java反编译jar包-binc_decompile.7z,这个自行下载】:
由于阿里云盘不能分享压缩包,所以这里提供了一个快捷下载链接 下载地址 ;将【反编译工具—脚本版】整个下载下来就行了(这个里边缺少一个bat脚本,我们可以不用,直接使用shell版本就行了;)
注意:阿里的原因,用idm 、fdm下载失败的话,关掉idm、fdm的chrome插件,用chrome直接下载就行了;

0 使用步骤:

  1. 下载
  2. 将下载文件解压
  3. 建议使用shell版本的脚本执行,bat脚本长时间为用了, 可能不好使了!
  4. 进入shell_fanbianyi目录
  5. 创建一个目录(随便起名,我这里留了一个source_jar的目录,可以直接用)
  6. 将要反编译的*.jar包放入第四步创建的目录中
  7. 回到shell_fanbianyi目录
  8. 右键鼠标,选择Git bash here ,执行命令:./foreach.sh
  9. 或者直接双击foreach.sh ,也能运行;
  10. 结束后进入shell_fanbianyi目录就能看到目标java文件了;(每个jar包反编译后都有一个对应的文件夹存放jar中的java文件)

  11. 记住上边的路径,这个就是源码包了,我们可以在idea中导入这个源码包了,这样的话,我们就能全局搜索jar中的方法了(**没有源码的只能搜到jar中文件,有了源码之后就能搜索jar包中的内容了(比如方法名,代码片段等)**)
  12. idea导入源码有两种方式
    1. 第一种:随便找个jar点进去,显示的都是**.class名;右上角有个 choose resource 即可导入源码;
    2. File -> Project Structure -> Modules-> Sources-> Add Content Root

image.png

  1. 导入源码之后,就可以愉快的玩耍了;再看源码就可以随便点击随便搜索了;住就是能够搜索了,没有源码的话有些搜索是搜索不到jar内部去的;


0.5 补充

maven项目导出所有的jar包
**mvn dependency:copy-dependencies -DoutputDirectory=lib**

1 这个脚本的编写过程(演变过程)

1 例0 单个jar反编译

java -jar procyon-decompiler-0.5.36.jar -jar [target.jar] -o [dist_dir]
java -jar procyon-decompiler-0.5.36.jar [target.class] -o [dist_dir]

这里依赖jdk1.7及以上,测试的时候,我用的是jdk8;

  1. Exception in thread "main" java.lang.UnsupportedClassVersionError: com/strobel/decompiler/DecompilerDriver : Unsupported major.minor version 51.0
  2. 改变环境变量太麻烦的话,可以将pathjava的路径往后放放,不要放在第一位;这样的话,用java_home的还是1.6,不用java_home的还是1.7(因为在system32中有一个java.exe的文件,这个是1.7的)
  3. 修改环境环境变量JAVA_HOME win+Pause
  4. java_home >> D:\programs_my\java\JAVA1.6_32bit\jdk1.6
  5. java_home >> D:\programs_my\java\JDK1.8

例如 反编译jar:
解压当前目录下的f22.jar (当前目录打开cmd)

2 例1、 —这个能反编译一个class

java -jar procyon-decompiler-0.5.36.jar   LoadDataToScm.class -o f11<br />    java -jar D:_binC\download\邮件\00_反编译_00\procyon-decompiler-0.5.36.jar 11\LoadDataToScm.class -o f44

3 例2、 —这个能反编译一整个jar包

java -jar procyon-decompiler-0.5.36.jar -jar eos-xml-factory.jar -o eos-xml-factory<br />    java -jar D:_binC\download\邮件\00_反编译_00\procyon-decompiler-0.5.36.jar -jar 【jar名称】 -o 【输出路径】

4 例3、 —如果想一次性处理反编译多个class,

    可以选择将整个项目打成jar包,然后用例2中的命令反编译;

    即:将 想反编译的所有的class文件 统统复制到一个新文件夹中,然后手动将这个文件件打jar包,然后再反编译这个jar
步骤1:    先将所有class文件复制到 11目录下
步骤2:    jar cf j11.jar 11  //将11 目录 打成 j11.jar
步骤3:    java -jar procyon-decompiler-0.5.36.jar -jar j11.jar -o 111  //将j11.jar 反编译,并输出到111文件夹;即所有得class文件反编译结果都在 111 目录下;

5 例3最通用了;针对例3,我们可以写脚本,然后自动执行

!!!windows脚本!!! (脚本很久没有用过了,用的时候检查一下,推荐使用shell版本)
—一次将多个class全部反编译,且结果会按照java的目录结构进行创建目录
将要反编译的文件放到新建的文件夹中,然后将该文件夹作为参数,执行下面命令
cmd
auto.bat 文件夹名 !!!!!!!!!!!
例如
auto.bat D:binC\download\邮件\00反编译_00\11

    示例
    auto.bat C:\Users\yxyc-chebin\Desktop\window反编译脚本版\1031

6 !!!!shell 脚本 !!!!(强烈推荐)

    一次将多个jar包全部反编译,且每个jar的内容都会单独存放到一个目录中(abc.jar反编以后源码存放在abc目录中)<br />        过程:<br />            将所有的jar放到 C:\Users\yxyc-chebin\Desktop\window_fanbianyijiaobenban\fanbianyilujing\ 下,注意不要有中文<br />            然后进入C:\Users\yxyc-chebin\Desktop\window_fanbianyijiaobenban\fanbianyilujing路径;右键git bash here;<br />            最后执行命令<br />            sh C:\Users\yxyc-chebin\Desktop\window_fanbianyijiaobenban\fanbianyilujing\foreach.sh