使用javassist
可以实现直接修改class文件中的方法,javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。
下面是例子:
1.要修改的class文件的代码,当然正常情况下你是看不到的
package
com.ms.xbox.halo.reach;
public class For_test { public static void
main(String[] args) {
}
}
2.随便建一个java工程,引入javassist的jar包,编译环境我用的1.4版本jdk,修改代码如下 import javassist.*; //获得类文件名 //获得要修改的方法名 package
com.ms.xbox.halo.reach;
public class For_test { public static void
main(String[] args) {
}
}
当然javassist
还有很多的功能,可以修改类中方法的属性,新增加方法,修改已有方法的程序体,上面只是一个很简单的例子.
感谢能看完全文,javassist
jar包的下载地址:
http://cdnetworks-kr-1.dl./project/jboss/Javassist/3.11.0.GA/javassist-3.11.GA.zip
|
|