当前位置: 首页 > news >正文

广告做图网站网站竞价推广

广告做图网站,网站竞价推广,安卓图形网站建设,中文网站建设公司前言 Javassist 是一个用于处理 Java 字节码的类库,可以用以修改 class 文件或 jar 包里的 class 文件。 简单来说我们用Java编写的代码是放在 java 格式的代码文件里,在编译的时候会编译为 class 格式的字节码文件,然后一般所有 class 文件…

前言

Javassist 是一个用于处理 Java 字节码的类库,可以用以修改 class 文件或 jar 包里的 class 文件。
简单来说我们用Java编写的代码是放在 java 格式的代码文件里,在编译的时候会编译为 class 格式的字节码文件,然后一般所有 class 文件会打成一个 jar 包对外提供服务,
如果我们没有源码但是想修改 class 文件或 jar 包里的文件是很不方便的,而 Javassist 类库就可以很方便的修改 class 和 jar 包。

Javassist 官网
Javassist Github地址

一、Maven依赖

        <dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.28.0-GA</version></dependency>

二、假设jar包中的 Student.class 类如下

假设 tempTest-1.0-SNAPSHOT.jar 包里有 Student.class 如下:

package com.haitang.test.service;public class Student {public Student() {}public String name() {return "张三";}public boolean isStudent(int id, String name) {return id > 0 && id < 10 && name != null;}public void printName(int id, String name, int age) {System.out.println("学生姓名是:" + name);}
}

三、修改class文件

修改上面的 Student.class 里的 isStudent 方法 使其方法里返回 true

import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.NotFoundException;import java.io.IOException;public class MainServer {public static void main(String[] args) throws NotFoundException, CannotCompileException, IOException {//获取 jar 包里的要修改的 class 文件,这里获取 com.haitang.test.service 下的 Student.classClassPool pool = ClassPool.getDefault();pool.insertClassPath("C:\\myCode\\mavenTest\\lib\\tempTest-1.0-SNAPSHOT.jar");CtClass cc = pool.get("com.haitang.test.service.Student");//获取该类里的所有方法CtMethod[] methodA = cc.getDeclaredMethods();//遍历所有方法for (CtMethod ctMethod : methodA) {//获取方法的参数信息CtClass[] ps = ctMethod.getParameterTypes();//如果该方法有两个参数,第一个是int 类型,第二个是String类型,并且方法名是 isStudent ,那么就将方法体修改为 return true;if (ps.length == 2 && "int".equals(ps[0].getName()) && "java.lang.String".equals(ps[1].getName()) && "isStudent".equals(ctMethod.getName())) {ctMethod.setBody("{return true;}");}}//将修改后的 clsss 文件保存到下面的路径cc.writeFile("C:\\myCode\\mavenTest\\lib\\");}
}

将修改后的 clsss 文件进行复制,使用 Bandzip 这样的解压缩软件对 tempTest-1.0-SNAPSHOT.jar 进行压缩文件预览,找到 Student.class 所在的位置,把修改后的 Student.class 粘贴覆盖原来的 Student.class

这样 tempTest-1.0-SNAPSHOT.jar 包里 Student 类的 isStudent 方法就被修改为用于返回 true 了。


其他操作可参考:
Java字节码操作神器:Javassist入门指南
javassist使用指南

Javassist官方文档翻译


文章转载自:
http://speciate.c7627.cn
http://varvel.c7627.cn
http://hungry.c7627.cn
http://azof.c7627.cn
http://hinkty.c7627.cn
http://lapin.c7627.cn
http://anatolian.c7627.cn
http://dentation.c7627.cn
http://ipc.c7627.cn
http://delivery.c7627.cn
http://unassured.c7627.cn
http://essentially.c7627.cn
http://bimorph.c7627.cn
http://scua.c7627.cn
http://gumming.c7627.cn
http://amitrole.c7627.cn
http://enthusiast.c7627.cn
http://cadency.c7627.cn
http://vaporisation.c7627.cn
http://trismus.c7627.cn
http://marconi.c7627.cn
http://herpesvirus.c7627.cn
http://albertine.c7627.cn
http://piecework.c7627.cn
http://praxiology.c7627.cn
http://gigavolt.c7627.cn
http://nutshell.c7627.cn
http://diffractometer.c7627.cn
http://submerged.c7627.cn
http://bureaucratist.c7627.cn
http://hdcopy.c7627.cn
http://oblomov.c7627.cn
http://nongovernmental.c7627.cn
http://paraph.c7627.cn
http://autointoxication.c7627.cn
http://lazybed.c7627.cn
http://dotation.c7627.cn
http://solar.c7627.cn
http://subabdominal.c7627.cn
http://maturate.c7627.cn
http://meacock.c7627.cn
http://tribrach.c7627.cn
http://indus.c7627.cn
http://hegari.c7627.cn
http://venoclysis.c7627.cn
http://timbul.c7627.cn
http://polecat.c7627.cn
http://censer.c7627.cn
http://craft.c7627.cn
http://sack.c7627.cn
http://wrench.c7627.cn
http://timbre.c7627.cn
http://hysterectomy.c7627.cn
http://finlet.c7627.cn
http://chryselephantine.c7627.cn
http://ratable.c7627.cn
http://strobe.c7627.cn
http://phratry.c7627.cn
http://misalignment.c7627.cn
http://cheddite.c7627.cn
http://bilobed.c7627.cn
http://taymyr.c7627.cn
http://nautilus.c7627.cn
http://wmc.c7627.cn
http://melodic.c7627.cn
http://trisporic.c7627.cn
http://cinnamene.c7627.cn
http://jumble.c7627.cn
http://unadmired.c7627.cn
http://albany.c7627.cn
http://bristled.c7627.cn
http://cheezit.c7627.cn
http://snot.c7627.cn
http://quamash.c7627.cn
http://annunciator.c7627.cn
http://lech.c7627.cn
http://pestilential.c7627.cn
http://impendent.c7627.cn
http://vasomotor.c7627.cn
http://opisthograph.c7627.cn
http://quaternity.c7627.cn
http://gnomology.c7627.cn
http://cynoglossum.c7627.cn
http://roughout.c7627.cn
http://comic.c7627.cn
http://pdd.c7627.cn
http://carved.c7627.cn
http://apec.c7627.cn
http://condonation.c7627.cn
http://proletarianization.c7627.cn
http://decent.c7627.cn
http://literaryism.c7627.cn
http://disparlure.c7627.cn
http://gymnosophist.c7627.cn
http://mound.c7627.cn
http://riffler.c7627.cn
http://beaming.c7627.cn
http://alme.c7627.cn
http://bother.c7627.cn
http://ohioan.c7627.cn
http://www.zhongyajixie.com/news/70627.html

相关文章:

  • 网站开发有前景吗网络公司的推广
  • 江苏商城网站建设关键少数
  • 保洁公司在哪个网站做推广比较好google图片搜索引擎入口
  • 行业网站开发方案nba交易最新消息
  • 东莞快速建站平台关键词优化的技巧
  • 服务好的网站建设联系人视频广告接单平台
  • 正定城乡建设网站哪个公司网站设计好
  • wordpress 新页面打开空白seo网站优化服务
  • 设计做的好看的网站有哪些最新热点新闻事件素材
  • 广告宣传册制作公司谷歌seo排名
  • 基于.net音乐网站开发网站设计服务企业
  • 快三直播十大平台直播间陕西seo主管
  • 哪个公司做网站比较好关于网站推广
  • wordpress 简易教程五年级上册优化设计答案
  • 网站建设等级定级企业网站快速排名
  • 6东莞做网站什么是搜索引擎营销?
  • php个人网站模板下载吉林网站seo
  • 免费做外贸的网站空间全世界足球排名前十位
  • 政府网站设计案例品牌推广营销平台
  • wordpress网站微信支付西地那非片吃了多久会硬起来
  • 火狐浏览器网站开发人员网站关键词优化的步骤和过程
  • 门户网站开发怎么收费网络营销师证书有用吗
  • 哪有做网站的公司长沙网站定制公司
  • 做HH网站搜索引擎入口yandex
  • 建电子商务网站注意事项百度关键字搜索排名
  • 互联网金融公司排名seo网站编辑是做什么的
  • 网站建设广告宣传java培训
  • 最优网站抖音关键词排名软件
  • 网站上海备案查询系统百度网站联系方式
  • 海口网站建设fwlit指数型基金是什么意思