问题描述:
很多时候,我们开发都是在windows环境进行的,因此,习惯了使用鼠标,习惯了很方便的浏览,但是,生产环境并不是这样的。很多时候生产环境只有冷冷的terminal界面(字符界面)。这给我们带来了很多问题,其中一个就是,有时候生产上需要验证java程序版本是否正确,我们应该怎么做呢?可以比较文件的大小,可以比较文件的MD5,但最可靠的方法,还是把.class文件反编译,查看内容是否正确。今天我要解决的就是如何在linux/Unix上反编译.class文件。
问题解决:
在windows环境下面经常用到的反编译工具是jad-gui,那么这个工具有没有linux版本?答案肯定是的,他在这个地方:
https://varaneckas.com/jad/
根据cpu类型,我们选择了。
直接上传到服务器,使用
gzip -d jad158e.linux.intel.zip
解压会得到jad可执行文件和readme.txt文件。为了方便使用,可以把jad拷贝到PATH包含的目录下面。
jad命令的参数如下:
有时候,我们只需要反编译一个文件,那么可以使用命令:
jad [class文件名]
反编译。
通常我们会碰到反编译jar的需求,jad不支持直接反编译jar包,需要分两步实现,第一步,jar解压缩,可以创建一个src目录,使用
jar -xvf [jar文件]
然后,使用通配符