更改class文件步骤:
1、用java反编译工具翻译,看是否有需要更改的信息。
2、用jclasslib工具查看需要更改的东西在哪一行。
3、用java代码更改class文件,如下:
/**
*
* 读取class文件,并更改。
*
**/
public class Reclass {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
String filePath = "这个是文件路径!";
FileInputStream fis = new FileInputStream(filePath);
DataInput di = new DataInputStream(fis);
ClassFile cf = new ClassFile();
cf.read(di);
CPInfo[] infos = cf.getConstantPool();
int count = infos.length;
for (int i = 0; i < count; i++) {
if (infos[i] != null) { //如果文件内容不是空。
System.out.print(i);
System.out.print(" = ");
System.out.print(infos[i].getVerbose());
System.out.print(" = ");
System.out.println(infos[i].getTagVerbose());
if(i == 60){ //表示在哪一行。
ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];
// http://10.7.1.201/services/weixin/MessageService?wsdl
uInfo.setBytes("需要更改的东西".getBytes());
infos[i]=uInfo;
}
}
}
cf.setConstantPool(infos);
fis.close();
File f = new File(filePath);
ClassFileWriter.writeToFile(f, cf);
}
}