最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jar更新jar包內(nèi)的class以及修改class實(shí)現(xiàn)方式

 更新時(shí)間:2026年04月22日 08:44:33   作者:Don't Look Down  
文章主要介紹了使用jar命令操作JAR包的方法,包括解壓、更新JAR包內(nèi)的文件,以及直接修改JAR包內(nèi)的Class文件等內(nèi)容

一、提取Jar 內(nèi)文件

#提取jar內(nèi)的配置文件
 jar -xvf a.jar META-INF\plugin.xml
 -已解壓: META-INF/plugin.xml
 #提取jar內(nèi)的class文件, 提示:反編譯為java文件,修改后再使用javac xxx.java編譯為class,
 jar -xvf a.jar io.config.**.abc.class
 -已解壓: io.config.**.abc.class

二、更新jar內(nèi)的資源

目錄路徑與Jar包 class文件目錄保持一致

#更新a.jar包下的 META-INF\plugin.xml
jar -uvf a.jar META-INF\plugin.xml  
#更新a.jar包下的  io.config.**.abc.class 
jar -uvf a.jar io\...\abc.class

jar -xvf 解壓出來(lái)如下,修改文件, 執(zhí)行 jar -uvf 更新命令 即可。

-

三、代碼直接修改Jar包內(nèi)的Class(這種方式要明確知道自己在干什么)

隨便一個(gè)java工程引入

1、maven引入javassist

<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
                <dependency>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                        <version>3.21.0-GA</version>
                </dependency>

2、java代碼執(zhí)行修改

    public static void main(String[] args) {
        try {
            ClassPool pool = ClassPool.getDefault();
         	//需要修改的jar包
	        pool.insertClassPath("C:\\Users\\Administrator\\a.jar");
	        //獲取到class
	        CtClass driverclass = pool.get("io.github.plugin.cofig.xxxxxxclass"); 
	        //獲取class內(nèi)聲明的方法,更改里面的內(nèi)容
	        driverclass.getDeclaredMethod("getMsg").setBody("return false;");
	        //將此修改的Class輸出至目錄中
	        driverclass.writeFile("D:\\javassistout");
        } catch (NotFoundException e) {
            throw new RuntimeException(e);
        } catch (CannotCompileException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }	

詳解:

  • jar 命令有生成、查看、更新、解開(kāi) jar 包的作用,包含 META-INF/MANIFEST.MF 文件。
  • 它是 jar 包生成的時(shí)候,自動(dòng)創(chuàng)建的,主要負(fù)責(zé)制定 jar 包的 main 文件位置和當(dāng)前文件夾。

參數(shù)可選項(xiàng):

  • -x 解壓已歸檔的指定(或所有)文件
  • -v 在標(biāo)準(zhǔn)輸出中生成詳細(xì)輸出
  • -f 指定歸檔文件名
  • -c 創(chuàng)建新的歸檔文件
  • -u 更新現(xiàn)有的歸檔文件
  • -t 列出歸檔目錄
  • -m 包含指定清單文件中的清單信息
  • -e 為捆綁到可執(zhí)行 jar 文件的獨(dú)立應(yīng)用程序指定應(yīng)用程序入口點(diǎn)
  • -o 僅存儲(chǔ),不使用任何 zip 壓縮
  • -i 為指定的 jar 文件生成索引信息
  • -M 不創(chuàng)建條目的清單文件
  • -C 更改為指定的目錄并包含其中的文件

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • RestTemplate使用不當(dāng)引發(fā)的問(wèn)題及解決

    RestTemplate使用不當(dāng)引發(fā)的問(wèn)題及解決

    這篇文章主要介紹了RestTemplate使用不當(dāng)引發(fā)的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • gateway與spring-boot-starter-web沖突問(wèn)題的解決

    gateway與spring-boot-starter-web沖突問(wèn)題的解決

    這篇文章主要介紹了gateway與spring-boot-starter-web沖突問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 關(guān)于java 圖形驗(yàn)證碼的解決方法

    關(guān)于java 圖形驗(yàn)證碼的解決方法

    本篇文章小編為大家介紹,在java中,使用圖形驗(yàn)證碼的解決方法。需要的朋友參考下
    2013-04-04
  • 解析Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時(shí)路徑的問(wèn)題

    解析Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時(shí)

    大家都很糾結(jié)這個(gè)問(wèn)題在使用getServletContext().getRealPath()得到的是臨時(shí)文件的路徑,每次重啟服務(wù),這個(gè)臨時(shí)文件的路徑還好變更,下面小編通過(guò)本文給大家分享Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時(shí)路徑的問(wèn)題,一起看看吧
    2021-05-05
  • java?process.waitfor返回1的原因及解決

    java?process.waitfor返回1的原因及解決

    這篇文章主要介紹了java?process.waitfor返回1的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題

    Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題

    這篇文章主要介紹了Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 基于jenkins上配置Credentials的2種方式

    基于jenkins上配置Credentials的2種方式

    這篇文章主要介紹了基于jenkins上配置Credentials的2種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Spring Boot 項(xiàng)目搭建教程及注解

    Spring Boot 項(xiàng)目搭建教程及注解

    下面小編就為大家?guī)?lái)一篇Spring Boot 項(xiàng)目搭建教程及注解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Java如何定位進(jìn)程中占用CPU或內(nèi)存最多的線程

    Java如何定位進(jìn)程中占用CPU或內(nèi)存最多的線程

    在排查?Java?性能問(wèn)題時(shí),定位占用?CPU?或內(nèi)存最多的線程是關(guān)鍵步驟,本文為大家介紹了針對(duì)兩種場(chǎng)景的具體排查方法,希望對(duì)大家有一定的幫助
    2025-05-05
  • 淺談java中類名.class, class.forName(), getClass()的區(qū)別

    淺談java中類名.class, class.forName(), getClass()的區(qū)別

    下面小編就為大家?guī)?lái)一篇淺談java中類名.class, class.forName(), getClass()的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05

最新評(píng)論

上思县| 桐梓县| 革吉县| 哈密市| 秦安县| 古浪县| 乌拉特后旗| 信阳市| 天全县| 青铜峡市| 闽侯县| 阿荣旗| 溆浦县| 临夏市| 格尔木市| 云霄县| 天镇县| 礼泉县| 子长县| 米林县| 上饶市| 东乌珠穆沁旗| 锦屏县| 诸暨市| 凤城市| 德钦县| 郓城县| 股票| 隆回县| 巢湖市| 中卫市| 含山县| 涪陵区| 高清| 象山县| 吉木萨尔县| 景谷| 延寿县| 宿州市| 惠来县| 阳江市|