一.功能介绍
Jad是一个工具,可以将java.class文件反编译为对应的. Java文件。
二.下载
Jad下载页面
根据您的系统选择要应用的版本。
三、使用说明(以Windows版本为例) ) )。
1、解压缩下载的压缩包
Jad解冻后的目录展示
2、可以将相应. exe文件的执行目录放置在系统的path路径中使用。 例如,配置Java环境变量)
将Jad执行目录设置为环境变量
问题:上述配置有问题。 解压缩后,解压缩后的文件夹名称带有. win,因此环境变量配置错误。 删除. win会成功。 (我记得在测试过程中再次打开cmd命令窗口。
Jad环境变量设置成功图标
3、将Coding枚举类用于反编译演示
package com.dtdream.design.blog;
import lombok.Getter;
//*
* @Author: kss
* @Description:
* @Date: Create in 2019/5/21
*/
@Getter
公共枚举错误消息枚举{
USER_NOT_EXIST ('当前用户不存在。 请登录并重试')、
;
私有字符串消息;
错误消息枚举(字符串消息)。
this.message=message;
}
}
代码很简单。 找到相应的已编译. class文件,然后尝试Jad的威力。
4、使用Jad反向编译. class文件
命令: jad ErrorMessageEnum.class
使用Jad成功进行了反向编译
. class文件目录中有更多的. jad文件
5、在文本编辑器中打开文件,反向编译的代码如下。
//decompiledbyjadv1.5. 8g.copyright 2001 pavelkouznetsov。
//jad home page :3358 www.KP dus.com/jad.html
//decompiler options 3360包导入(3)。
//source filename 3360 error message enum.Java
package com.dtdream.design.blog;
publicfinalclasserrormessageenumextendsenum
{
//在此,使用静态静态代码块初始化的值克隆数组
publicstaticerrormessageenum [ ] values (
{
返回(error message enum [ ] ) $VALUES.clone );
}
//重写父类的valueOf方法
publicstaticerrormessageenumvalueof (字符串名称) )。
{
返回(错误消息枚举)枚举. value of ) com/dt dream/design/blog /错误消息枚举,name );
}
//枚举类的缺省私有构造函数,以及其他限定编译以报告错误
私有内存消息(strings,int i,String message )。
{
super(s,I );
this.message=message;
}
私有字符串消息;
//@Getter生成的get方法
公共字符串获取消息sage (
{
返回消息;
}
//final限定的字段类在加载时初始化,否则在编译时报告错误,并初始化下一个静态代码块
publicstaticfinalerrormessageenumuser _ not _ exist;
privatestaticfinalerrormessageenum $ values [ ];
从静态静态代码块在类加载时对final变量进行初始化赋值
静态
{
user _ not _ exist=newerrormessageenum (user _ not _ exist ),0,(_5f53_524d_u7528_u6237_4e0d_ )。
$ values=(newerrormessageenum [ ] {
USER_NOT_EXIST
);
}
}
因此,通过Jad反编译工具,可以在开发过程中了解Java代码的实际情况。 可能不像我们看到的那样。 希望分析一些代码(例如添加lombok @ data注释的代码的样子)的合作伙伴可以使用Jad反编译. class文件以查看代码的实际情况。
在成长的道路上,我希望你拥有我。