舉例: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...