修改jar包中的配置文件
修改jar包中的配置文件
- 場(chǎng)景描述
- 難點(diǎn)分析
- 幾種嘗試
- 方法一:vim修改
- 方法二:使用win
- 方法三:先提取后替換
- 方法四:在linux解壓后vim修改并重新打包
- 最終方案
- 補(bǔ)充
- Over!
場(chǎng)景描述
項(xiàng)目已封板,卻突然被告知要修改與某平臺(tái)的交互參數(shù)。最簡(jiǎn)單的方式就是修改代碼,并重寫丄包。經(jīng)過幾番確認(rèn),這種非必須(ps:他們覺得可以直接修改jar包or war包里配置文件)的修改不允許修改master,被無(wú)情拒絕了。只見二十幾個(gè)項(xiàng)目組都在修改配置文件。內(nèi)心有句話不知當(dāng)講不當(dāng)講~~
難點(diǎn)分析
本次與一般的情況不同。項(xiàng)目使用maven管理依賴,并將代碼按業(yè)務(wù)劃分了幾個(gè)module,并且部署時(shí)是jar包部署。本次需要修改的配置文件。(file.properties )和啟動(dòng)類不在同一個(gè)module下,即 file.properties 在項(xiàng)目部署jar( app.jar )里面的一個(gè)jar包( pack.jar )里面,被套了兩層。
普通的一層jar可直接vim修改,見最終方案里的修改file.properties部分
幾種嘗試
方法一:vim修改
先嘗試vi修改,不知是編碼還是其他原因,四個(gè)環(huán)境中有兩個(gè)環(huán)境為亂碼,無(wú)法修改。
后嘗試vim進(jìn)行修改,進(jìn)入app.jar后,無(wú)法直接編輯 pack.jar 。
故,失敗!
方法二:使用win
將jar包下載至win解壓一次得到 pack.jar,再使用壓縮軟件對(duì) file.properties 進(jìn)行編輯,然后替換原 pack.jar,得到新的app.jar包。
運(yùn)行最新jar包時(shí),報(bào)錯(cuò)顯示 pack.jar 包被壓縮過,無(wú)法運(yùn)行該jar包。
故,失敗!
方法三:先提取后替換
使用 jar xf 項(xiàng)目部署jar pack.jar 命令獲取到pack.jar后,
再使用 vim pack.jar 對(duì) file.properties 進(jìn)行修改,
最后使用 jar uf 項(xiàng)目部署jar pack.jar 命令替換原來(lái)的pack.jar,
激動(dòng)人心的時(shí)刻到了!好吧,還是啟動(dòng)失敗,再次報(bào)錯(cuò)顯示 pack.jar 包被壓縮過,無(wú)法運(yùn)行該jar包。
故,失敗!
方法四:在linux解壓后vim修改并重新打包
根據(jù)二、三的錯(cuò)誤信息,決定解決這個(gè)隱藏的壓縮操作。
選擇在linux下直接解壓app.jar后,再使用vim對(duì)pack.jar進(jìn)行修改,編輯file.properties文件,最后重新打包。
這次成功了!!!!
最終方案
如上方法四中所述,以下為相關(guān)命令:
unzip app.jar // linux 環(huán)境解壓人app.jar rm -rf app,jar // 刪除原app.jar cd BOOT-INF/lib/ // 進(jìn)入pack.jar所在目錄 vim pack.jar // 進(jìn)入pack.jar /file.properties // 回車兩次后進(jìn)入file.properties// 此處省略文本修改步驟,:d 就退出jar了 jar cvfm0 app.jar ./META-INF/MANIFEST.MF ./ // 該步驟很重要!!!通過以上步驟就得到了最新的app.jar,運(yùn)行成功了!!!
補(bǔ)充
解釋一下最后重新打包的命令
jar cvfm0 app.jar ./META-INF/MANIFEST.MF ./cvf 重新打包
m0 不壓縮
./META-INF/MANIFEST.MF 選擇原來(lái)的manifest文件,這里面記載一些啟動(dòng)參數(shù),這個(gè)東西是必不可少的。如果打包時(shí)沒有指定,則會(huì)生成一個(gè)默認(rèn)的,會(huì)無(wú)法啟動(dòng)!所以要指定為原來(lái)的manifest文件。
ps:linux只會(huì)基本部署項(xiàng)目的操作,有錯(cuò)誤的地方還望海涵。
歡迎大家提供新的方法或思路,一起學(xué)習(xí)啦~~~
轉(zhuǎn)載請(qǐng)標(biāo)明出處哈
Over!
總結(jié)
以上是生活随笔為你收集整理的修改jar包中的配置文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql server Developer
- 下一篇: sql2000 mysql_sql200