有的时候,可能需要直接修改java class文件,反编译得到源码后,可能会遇到很多类报错,若是只修改要改的class文件,不失为一个好的方式。
1. 使用JD-GUI查看jar,并保存源码
得到了Test.java源码文件
2. 修改Test.java源码文件
比如,加了日志输出啥的
3. 重新编译Test.java源码文件,得到Test.class
javac -cp 源码.jar Test.java
3.1 若是,遇到错误:Test.java:20: 错误: 编码GBK的不可映射字符,则需要指定java文件的编码方式,使用以下命令:
javac -cp 源码.jar -encoding UTF-8 Test.java
3.2 若是,遇到错误:Test.java:3: 错误: 程序包android.content不存在,这是缺少android.jar导致(缺少其它jar类似,使用;符引入即可)
javac -cp 源码.jar;android.jar -encoding UTF-8 Test.java
4. 编译成功后,会得到Test.class
5. 使用压缩包软件,打开“源码.jar”,使用编译出来的Test.class覆盖“源码.jar”里的Test.class
6. 也可使用JD-GUI再次查看下“源码.jar”,看是否修改Test.class是否成功