看公司代码的时候,发现公司将基本的类包装了,想要查看包装的源文件,发现是编译成了.class文件放在robase.jar包下。
无法通过Eclipse-attach source直接查看源码。因此要将jar包下的class文件反编译成java文件以便查看源码,理解程序。
首先设置软件的系统环境变量:
变量名:PATH
变量值:D:\Program Files\decomp[软件安装路径]
我所要解压的jar包叫robase.jar,先将robase.jar放在D:\下,然后通过解压缩工具解压到同名文件夹robase下。同时,在D:\下再建一个robase_res文件夹,存放我们反编译后的java文件。
Win+R组合键打开运行窗口,输入cmd,回车出现命令行窗口。在命令输入框中输入如下命令:
jad -o -r -d D:\robase_res -sjava D:\robase\**\*.class 命令解读:D:\robase_res表示编译后文件的存放路径 目标文件夹
D:\robase\**\*.class 表示需要被反编译的文件 -o - overwrite output files without confirmation (default: no) 无需确定覆写文件 -r - restore package directory structrure 恢复包目录结构 -s <ext></ext>- output file extension (by default '.jad') 如果不设置为-sjava,则默认扩展名为.jad D:\robase\**\*.class 中的两颗接连的星,表示任意层次的子目录。
编译完成后,在robase_res文件夹中就出现了我们需要的java源文件。但是这样还不够。
eclipse中attach source 是需要attach一个jar文件而不是文件夹。因此,我们要将robase_res文件夹打包为robase_res.jar
如果你不熟悉 jar 命令打包,那就用一个讨巧的办法。
使用压缩工具先把robase_res文件夹打包为robase_res.zip
然后直接把后缀名改为robase_res.jar即可,导入后能成功查看。
参考文档: