修改jar包中class文件的内容
过程
1、打开jar包,反编译class文件
2、新建一个java文件,把反编译的内容复制过去(或是直接导出java文件)。
3、修改内容后,使用javac -cp命令重新编译成class文件
4、把新的class文件,替换jar包中的旧class文件,就可以了。
实际演示
例如:我想要修改mysql驱动包mysql-connector-java-6.0.6.jar中maxAllowPacket的默认值。
1、使用jad打开jar包,先找到class文件PropertyDefinitions
2、创建一个PropertyDefinitions.java文件,把反编译的内容复制过来,把65535修改成65535000,保存。
3、使用javac -cp命令把PropertyDefinitions.java文件编译成class文件
说明:java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,windows用分号;Linux、mac用冒号:
注意:要使用和jar包相同版本的jdk来编译,如不清楚,可以使用javap -verbose xxx.class 来查看,如下图:
JDK版本和Java编译器内部的版本号如下:
J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50
4、使用压缩软件打开jar包,把上面编译好的class文件,拖入jar包中覆盖旧的class文件,保存。
5、再次用jad反编译jar包,检查一下是否修改成功