jar包替換的思考

2021-08-25 21:20:38 字數 373 閱讀 4777

舉例:package com.wmmad.test; public class myconstants

package com.wmmad.test; public class mytest }

定義乙個常量類,**去獲取常量類並輸出。

把編譯好的兩個class檔案獲取過來執行,結果為1。

當我們發布後,突然發現常量定義的值是10而不是1,線上**需要走發布流程才能修改,一般開發會這麼處理。

修改常量定義的類,編譯成class檔案,替換線上的class,但是執行後結果如何,發現輸出還是1,why。

這裡主要就是final型別,jdk在編譯時會將變數替換,把變數點替換成具體的值。

具體的jmain**反編譯後的結果如下:

jar包內檔案替換

jar 引數 引數 說明 c 建立乙個jar包 t 顯示jar中的內容列表 x 解壓jar包 u 新增檔案到jar包中 f 指定jar包的檔名 v 輸出詳細報告 m 指定manifest.mf檔案 0 生成jar包時不壓縮內容 m 不生成清單檔案manifest.mf i 為指定的jar檔案建立索引...

MyEclipse 下替換預設的jar包

在j2ee開發過程中,myeclipse整合的框架中,其核心包core,由於多個框架整合中,有重複的包 最經常見的是antlr,asm,common io等包。因為在開發中,使用myeclipse來加入各整合框架時,會將其所有的包都載入進來,在部署為war包時,會將所有的包都打包。所以會出現antl...

Linux命令替換jar包中檔案

一 查詢需要替換的檔案在jar中的位置 jar tvf jar grep執行結果 jar tvf pkpassserver 0.0.1 snapshot.jar grep cer.p12 3289 tue nov 27 16 30 46 cst 2018 boot inf classes stati...