中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

廣告做圖網(wǎng)站seo包年優(yōu)化

廣告做圖網(wǎng)站,seo包年優(yōu)化,網(wǎng)絡(luò)銷售有哪些,眉縣網(wǎng)站建設(shè)前言 Javassist 是一個用于處理 Java 字節(jié)碼的類庫,可以用以修改 class 文件或 jar 包里的 class 文件。 簡單來說我們用Java編寫的代碼是放在 java 格式的代碼文件里,在編譯的時候會編譯為 class 格式的字節(jié)碼文件,然后一般所有 class 文件…

前言

Javassist 是一個用于處理 Java 字節(jié)碼的類庫,可以用以修改 class 文件或 jar 包里的 class 文件。
簡單來說我們用Java編寫的代碼是放在 java 格式的代碼文件里,在編譯的時候會編譯為 class 格式的字節(jié)碼文件,然后一般所有 class 文件會打成一個 jar 包對外提供服務(wù),
如果我們沒有源碼但是想修改 class 文件或 jar 包里的文件是很不方便的,而 Javassist 類庫就可以很方便的修改 class 和 jar 包。

Javassist 官網(wǎng)
Javassist Github地址

一、Maven依賴

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

二、假設(shè)jar包中的 Student.class 類如下

假設(shè) 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("學(xué)生姓名是:" + 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) {//獲取方法的參數(shù)信息CtClass[] ps = ctMethod.getParameterTypes();//如果該方法有兩個參數(shù),第一個是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 文件進(jìn)行復(fù)制,使用 Bandzip 這樣的解壓縮軟件對 tempTest-1.0-SNAPSHOT.jar 進(jìn)行壓縮文件預(yù)覽,找到 Student.class 所在的位置,把修改后的 Student.class 粘貼覆蓋原來的 Student.class 。

這樣 tempTest-1.0-SNAPSHOT.jar 包里 Student 類的 isStudent 方法就被修改為用于返回 true 了。


其他操作可參考:
Java字節(jié)碼操作神器:Javassist入門指南
javassist使用指南

Javassist官方文檔翻譯

http://www.risenshineclean.com/news/59080.html

相關(guān)文章:

  • wordpress心理教育網(wǎng)站西安百度推廣優(yōu)化公司
  • 調(diào)查問卷在哪個網(wǎng)站做互換鏈接的方法
  • 程序員做網(wǎng)站如何賺錢百度搜索指數(shù)
  • 萬網(wǎng)備案網(wǎng)站名稱互聯(lián)網(wǎng)營銷方法有哪些
  • 做奢侈品回收網(wǎng)站特點(diǎn)軟文推廣怎么寫
  • 用vs做網(wǎng)頁是怎么創(chuàng)建網(wǎng)站的千萬不要做手游推廣員
  • 用asp.net開發(fā)網(wǎng)站的優(yōu)勢最近發(fā)生的新聞大事
  • 做自己的網(wǎng)站需要什么logo網(wǎng)站設(shè)計
  • 網(wǎng)站建設(shè)布局利于優(yōu)化我想找一個營銷團(tuán)隊
  • 海北wap網(wǎng)站建設(shè)軟文編輯
  • 江西省都昌縣建設(shè)局網(wǎng)站上海谷歌seo公司
  • 臨沂網(wǎng)站建設(shè)培訓(xùn)google chrome
  • 務(wù)川網(wǎng)站建設(shè)最新國際新聞大事件
  • 成都網(wǎng)站優(yōu)化最低價百度站長工具收費(fèi)嗎
  • 網(wǎng)站開發(fā)的背景互聯(lián)網(wǎng)營銷師考試內(nèi)容
  • 上海裝修做網(wǎng)站的倒閉了100%上熱門文案
  • 手機(jī)做ppt的免費(fèi)模板下載網(wǎng)站九幺seo工具
  • 網(wǎng)站建設(shè)的具體方法萬網(wǎng)域名購買
  • 做網(wǎng)站還能賺錢嗎沈陽網(wǎng)頁建站模板
  • 網(wǎng)站怎么加留言免費(fèi)百度下載
  • 中國建設(shè)銀行新疆分行網(wǎng)站移動建站優(yōu)化
  • 房地產(chǎn)集團(tuán)網(wǎng)站建設(shè)方案企業(yè)網(wǎng)絡(luò)營銷方案策劃
  • 黨校網(wǎng)站建設(shè)百度網(wǎng)盤客服中心電話
  • 做裝修網(wǎng)站推薦客戶靠譜嗎百度推廣后臺登陸入口
  • 寧波住房和城鄉(xiāng)建設(shè)委員會官方網(wǎng)站山西網(wǎng)頁制作
  • 攝影師網(wǎng)站北京網(wǎng)站優(yōu)化方式
  • wordpress grace 下載官網(wǎng)seo怎么做
  • 安徽太基建設(shè)官方網(wǎng)站seo發(fā)帖軟件
  • 模版網(wǎng)站建設(shè)怎么做一個自己的網(wǎng)頁
  • 展廳設(shè)計用什么軟件sem與seo的區(qū)別