最近碰到一个棘手的问题:客户要定制接口,然后他们发了一个旧版的JAR包,其中有几个接口在新的文档上面已经去掉了。但是由于他们文档定制和程序不同步,所以那边的程序员拒绝现在修改。牛逼到屌爆了,于是乎自能自己修改。。。
首先用 Java Decompiler (JD-GUI、JD-Core)打开 JAR 包,然后找到待修改的文件
File -> Save,把它保存成 java
用记事本修改,然后使用 javac 命令将 JAVA 文件编译成 CLASS 文件,javac 语法如下:
javac -classpath <dependence jar> <source files>
注意点:
(1) -classpath 可以用 -cp 简写
(2)多个依赖的JAR包,LINUX下用“:”分割,WINDOW下用“;”分割
(3)多个源文件用空格分隔,也可以使用诸如“*”之类的通配符
例如:
javac -cp D:\Desktop\test.jar;D:\software\android\sdk\platforms\android-27\android.jar test1.java test2.java
或
javac -cp D:\Desktop\test.jar;D:\software\android\sdk\platforms\android-27\android.jar *.java
最后用“压缩软件”打开 JAR 包,再编译好的 CLASS 文件替换到相应的位置即可。