『壹』 修改jar包中的配置文件
原文地址: 修改jar包中的配置文件
現有jar包 base-web.jar
查找jar包裡面的文件:
jar ftv ks-web-1.0.3.jar | grep pom.xml
要修改jar包中配置文件可以用下面三種方式:
方式一 通過vim命令直接修改保存jar。超方便。
通過vim命令直接編輯jar
vim xxx.jar 該命令首先會列出全部文件,可以通過輸入/abc來搜索,定位到對應的abc文件後回車進入配置文件內進行編輯,:wq保存。
方式二 通過jar命令替換jar包中的文件(也可新增)
1.列出jar包中的文件清單
jar tf base-web.jar
2.提取出內部jar包的指定文件
jar xf base-web.jar `jar ft base-web.jar | grep t_ivr_data_bj.json`
3.然後可以修改文件
vim BOOT-INF/classes/realtime/t_ivr_data_bj.json
4.更新配置文件到內部jar包.(存在覆蓋,不存在就新增)
jar uf base-web.jar BOOT-INF/classes/realtime/t_ivr_data_bj.json
4.1更新內部jar包到jar文件
jar uf base-web.jar 內部jar包.jar
5.可以查看驗證是否已經更改
vim base-web.jar
方式三 解壓jar包,修改後重新打包jar
1.解壓
unzip base-web.jar
2.移除jar包,最好備份
rm base-web.jar
3.重新打包
jar -cfM0 base-web.jar *
或者
jar -cvfm0 base-web.jar ./META-INF/MANIFEST.MF ./
4.運行
java -jar base-web.jar
jar命令參數:
-c 創建新的存檔
-f 指定存檔文件名
-M 不配置配置清單,這樣還可以使用maven生成的配置清單也就是MANIFEST.MF
-0 不進行壓縮,如果壓縮會有問題
-m 指定清單文件
-t 列出歸檔目錄
-x 從檔案中提取指定的 (或所有) 文件
-u 更新現有的歸檔文件
-v 在標准輸出中生成詳細輸出
『貳』 jar如何引用lib里的properties文件
讀取jar包內配置文件
_話閽諳釒恐惺褂_roperties配置文件的時候都將相關的properties文件放在src目錄下,在將該app打包生成jar後,相應的properties配置文件生...
?
_話閽諳釒恐惺褂_roperties配置文件的時候都將相關的properties文件放在src目錄下,在將該app打包生成jar後,相應的properties配置文件生成在jar包中,這樣的話要修改配置文件又要重新打jar包,那是相當的麻煩。
?
_熱徽餉綽櫸常憧隙ㄏ虢渲夢募旁諂淥哪柯枷攏傻_ar包內不包含相應的配置文件,修改配置文件無需重新打包,沒錯,下面就是一種解決方案了。
?
_寥jar包內配置文件:
?
_nputStream in = this.getClass().getClassLoader().getResourceAsStream("/configfilename.properties");
?
_寥jar包外配置文件:
?
_tring filePath = System.getProperty("user.dir") + "/conf/configfilename.properties";
?
_nputStream in = new BufferedInputStream(new FileInputStream(filePath));
?
_磽猓綣_pp中使用到log4j.properties文件,默認的存放路徑是src/log4j.properties,同上面一樣,我想把log4j.properties放在其他目錄中,這樣一來,在修改log4j配置文件的時候無需重新打jar包。
?
__ain函數第一行添加如下代碼:
?
_ropertyConfigurator.configure(System.getProperty("user.dir") + "/conf/log4j.properties");
『叄』 eclipse打包了可執行的jar文件.怎麼讓jar讀取同級目錄下的properties和xml配置文件
您好,讀取jar包內配置文件:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("/configfilename.properties");
讀取jar包外配置文件:
String filePath = System.getProperty("user.dir") + "/conf/configfilename.properties";
InputStream in = new BufferedInputStream(new FileInputStream(filePath));
另外,如果app中使用到log4j.properties文件,默認的存放路徑是src/log4j.properties,同上面一樣,我想把log4j.properties放在其他目錄中,這樣一來,在修改log4j配置文件的時候無需重新打jar包。
在main函數第一行添加如下代碼:
PropertyConfigurator.configure(System.getProperty("user.dir") + "/conf/log4j.properties");
『肆』 為什麼直接用好壓修改配置文件就啟動不了jar包
首先你看下在本地修改同一個配置文件會不會出錯
如果不會重新打jar包
『伍』 Java的jar包中資料庫配置文件.xml在本地環境和伺服器上不同,怎麼方便地更改
在persistence.xml中配置兩個,開發時將伺服器的配置屏蔽掉,打包時將開發環境配置屏蔽掉不就方便一點
『陸』 java-uf命令使用
不通過java去修改Jar里的文件,而是用linux的Jar命令(當然也是通過java去調用linux命令),先解壓縮jar包,然後將動態生成的配置文件替換解壓縮包里的配置文件,最後再將目錄壓縮成Jar文件。
『柒』 jar解壓後 如何把解壓出來的文件夾 重新編譯成jar
你不是只修改了一個配置文件嗎?原來的那個jar文件還在吧,用winrar打開,但是別解壓,直接替換你修改好的文件(找到winrar中那個文件,把你要換的文件用滑鼠直接托進去替換掉)就行了,格式winrar會自動識別的,不用修改任何東西。
『捌』 jar包裡面的代碼如何讀取jar包中的配置文件
先看代碼目錄結構: src/weather/ QueryWeather.java weather.xml 程序裡面可以直接讀取到weather.xml文件,代碼如下: private static String getXmlContent()throws IOException { FileReader f = new FileReader("src/weather/weather.xml"); BufferedReader fb = new BufferedReader(f); StringBuffer sb = new StringBuffer(""); String s = ""; while((s = fb.readLine()) != null) { sb = sb.append(s);}return sb.toString();}但是一旦把這個class文件和xml文件打成jar包再運行,對不起,報錯,QueryWeather.class位元組碼根本找不到weather.xml 在看打成jar包的結構:META-INFMANIFEST.MFweatherQueryWeather.class weather.xml 用下面的方法就可以找到weather.xml private static String getXmlContent()throws IOException { Reader f = new InputStreamReader(QueryWeather.class.getClass().getResourceAsStream("/weather/weather.xml")); BufferedReader fb = new BufferedReader(f); StringBuffer sb = new StringBuffer(""); String s = "";
『玖』 java窗體程序 打包jar後 怎麼動態修改xml配置信息,請問哪位大神會啊
這種做法很不好呀,應該在窗體程序中增加一個配置文件,原包中的xml文件做為原始配置不動,窗體程序運行時可做一個菜單項「配置」,新做的配置修改保存到本地一個xml文件中,以後啟動窗體程序時先檢查有沒有這個本地xml文件,有則從它裡面讀入配置,否則從類路徑的jar中讀取配置
『拾』 java 打包 jar 文件時 配置文件.properties 的處理
用命令: jar -cvf 歸檔文件名 待歸檔文件列表