jar命令修改jar包中的application.yml配置文件
前言
JAR包是Java中所特有一種壓縮文檔,其實(shí)大家就可以把它理解為.tar.gz包。當(dāng)然也是有區(qū)別的,JAR包中有一個(gè)META-INF\MANIFEST.MF文件;jar命令是由JDK自帶的工具,當(dāng)操作系統(tǒng)安裝JDK后即可使用jar命令來(lái)操作jar包
很多時(shí)候現(xiàn)場(chǎng)實(shí)施需要更改jar包中的application.yml配置文件中的配置,但又不想修改現(xiàn)場(chǎng)的啟動(dòng)命令來(lái)指定使用外部配置文件啟動(dòng)jar包,這時(shí)就可以使用jar命令來(lái)實(shí)現(xiàn)修改jar中的application.yml配置文件而不需要做其他操作
1. 首先需要安裝JDK,并設(shè)置好環(huán)境變量
[root@test ~]# which java /usr/java/jdk1.8.0_201/bin/java [root@test ~]# which jar /usr/java/jdk1.8.0_201/bin/jar
2. 查找需要修改jar包中的application.yml文件路徑
[root@test ~]# jar tf test.jar | grep application.yml BOOT-INF/classes/application.yml
3. 導(dǎo)出jar包中的application.yml文件
[root@test ~]# jar xf test.jar BOOT-INF/classes/application.yml [root@test ~]# ll drwxr-xr-x 3 root root 21 6月 28 14:54 BOOT-INF [root@test ~]# tree BOOT-INF BOOT-INF └── classes └── application.yml 1 directory, 1 file
4. 現(xiàn)在您可以修改編輯導(dǎo)出的配置文件
[root@test ~]# vim BOOT-INF/classes/application.yml
5. 將修改后的文件重新打入jar包
[root@test ~]# jar uf test.jar BOOT-INF/classes/application.yml [root@test ~]# echo $? 0
修改完成,您可以重新導(dǎo)出該文件該文件查看是否修改成功
附1:
jar命令幫助
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
選項(xiàng):
-c 創(chuàng)建新檔案
-t 列出檔案目錄
-x 從檔案中提取指定的 (或所有) 文件
-u 更新現(xiàn)有檔案
-v 在標(biāo)準(zhǔn)輸出中生成詳細(xì)輸出
-f 指定檔案文件名
-m 包含指定清單文件中的清單信息
-n 創(chuàng)建新檔案后執(zhí)行 Pack200 規(guī)范化
-e 為捆綁到可執(zhí)行 jar 文件的獨(dú)立應(yīng)用程序
指定應(yīng)用程序入口點(diǎn)
-0 僅存儲(chǔ); 不使用任何 ZIP 壓縮
-P 保留文件名中的前導(dǎo) '/' (絕對(duì)路徑) 和 ".." (父目錄) 組件
-M 不創(chuàng)建條目的清單文件
-i 為指定的 jar 文件生成索引信息
-C 更改為指定的目錄并包含以下文件
如果任何文件為目錄, 則對(duì)其進(jìn)行遞歸處理。
清單文件名, 檔案文件名和入口點(diǎn)名稱的指定順序
與 'm', 'f' 和 'e' 標(biāo)記的指定順序相同。
示例 1: 將兩個(gè)類文件歸檔到一個(gè)名為 classes.jar 的檔案中:
jar cvf classes.jar Foo.class Bar.class
示例 2: 使用現(xiàn)有的清單文件 'mymanifest' 并
將 foo/ 目錄中的所有文件歸檔到 'classes.jar' 中:
jar cvfm classes.jar mymanifest -C foo/ .
附2:
springboot啟動(dòng)jar包時(shí)指定使用外部配置文件啟動(dòng)
如果要使用多個(gè)配置文件,中間以英文逗號(hào)分隔即可
[root@toc_test ~]# java -jar test.jar --spring.config.location=/root/1.yml,/root/2.yml
到此這篇關(guān)于jar命令修改jar包中的application.yml配置文件的文章就介紹到這了,更多相關(guān)jar包 application.yml配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Springboot如何獲取配置文件application.yml中自定義的變量并使用
- Springboot?application.yml配置文件拆分方式
- Spring Boot 配置文件(application.yml、application-dev.yml、application-test.yml)
- SpringBoot項(xiàng)目中配置application.yml中server.port不生效的問(wèn)題
- Spring Boot配置application.yml及根據(jù)application.yml選擇啟動(dòng)配置的操作方法
- 自定義application.yml配置項(xiàng)方式
相關(guān)文章
Java實(shí)現(xiàn)的簡(jiǎn)單數(shù)字處理類及用法示例
這篇文章主要介紹了Java實(shí)現(xiàn)的簡(jiǎn)單數(shù)字處理類及用法,涉及java數(shù)字運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-01-01Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器
這篇文章主要介紹了Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器,文章我圍繞實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的相關(guān)代碼展現(xiàn)全文,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,2022-01-01mybatis-plus 表名添加前綴的實(shí)現(xiàn)方法
這篇文章主要介紹了mybatis-plus 表名添加前綴的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08你應(yīng)該知道的21個(gè)Java核心技術(shù)
Java的21個(gè)核心技術(shù)點(diǎn),你知道嗎?這篇文章主要為大家詳細(xì)介紹了Java核心技術(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08FilenameUtils.getName?函數(shù)源碼分析
這篇文章主要為大家介紹了FilenameUtils.getName?函數(shù)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09IDEA 2020.1 搜索不到Chinese (Simplified) Language
小編在安裝中文插件時(shí)遇到IDEA 2020.1 搜索不到Chinese ​(Simplified)​ Language Pack EAP,無(wú)法安裝的問(wèn)題,本文給大家分享我的解決方法,感興趣的朋友一起看看吧2020-04-04