你会用javassist修改Jar包吗

不管是工作中,还是自己平时学习时候,或多或少都会碰到一些问题。没有源码的Jar文件或者是混淆过得Jar文件,里面提供的某个方法不适合自己,甚至某个方法是用来进行判断license的。

下面说的这个javassist.jar文件,就具备修改jar文件里面某个class的功能。上代码!

public static void main(String[] args) throws Exception {
		try {
			ClassPool pool = ClassPool.getDefault();
			//指定class所在的路径
			pool.insertClassPath("E:\\test");
			//指定要修改class的完整类名
			CtClass cc = pool.get("com.test.runtime");
			//设置要修改的方法需要的参数,没有参数可以不设置
			CtClass[] param = new CtClass[1];
			param[0] = pool.get("int");
			//指定要修改的类方法
			CtMethod m = cc.getDeclaredMethod("check", param);
			//插入新的代码到最前面
			//m.insertBefore("{if(true) return ;}"); 
			//重新设置方法体
			m.setBody("{return ;}");
			//保存到文件里,文件会保持到该工程下
			cc.writeFile();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

方法很简单,但是对需要的人来说,很重要。

Jar包下载地址:https://git.oschina.net/eliyanfei/api_tools.git

转载于:https://my.oschina.net/eliyanfei/blog/779669

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值