教你代碼中獲取當(dāng)前?JAR?包的存放位置
如何獲取當(dāng)前 JAR 包的存放位置
提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
前言
代碼中如何獲取打包后的jar包存放的位置?
要獲取當(dāng)前運(yùn)行的 JAR 包所存放的位置,可以使用 ProtectionDomain 和 CodeSource 類(lèi)。
代碼:
import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;
public class Main {
public static void main(String[] args) {
// 獲取當(dāng)前類(lèi)的保護(hù)域
ProtectionDomain protectionDomain = Main.class.getProtectionDomain();
// 獲取代碼源
CodeSource codeSource = protectionDomain.getCodeSource();
// 獲取代碼源的位置
URL location = codeSource.getLocation();
// 獲取 JAR 包的路徑
String jarPath = location.getPath();
System.out.println("JAR Path: " + jarPath);
}
}注意:這種方法適用于獨(dú)立的可執(zhí)行 JAR 包。如果你的代碼是作為依賴(lài)項(xiàng)運(yùn)行在其他項(xiàng)目或容器中,可能會(huì)得到不同的結(jié)果。在這種情況下,獲取 JAR 包位置的方法可能會(huì)有所不同。
如何找到j(luò)ar包在本地倉(cāng)庫(kù)的位置
第一種:怎么定位pom文件的某個(gè)依賴(lài)在本地倉(cāng)庫(kù)的位置
鼠標(biāo)選中此依賴(lài),就會(huì)彈出一個(gè)彈框,彈框里的路徑就是此依賴(lài)在本地倉(cāng)庫(kù)的位置.
即使不選中依賴(lài)彈出彈框,此依賴(lài)的groupid + artifactid+version 所對(duì)應(yīng)的內(nèi)容加起來(lái)就是此依賴(lài)所指向的本地倉(cāng)庫(kù)的jar包的位置.

第二種:怎么定位右側(cè)maven窗口的某個(gè)依賴(lài)在本地倉(cāng)庫(kù)的位置
可以看到,下面劃線的名稱(chēng)就是在本地倉(cāng)庫(kù)的路徑位置.

第三種:報(bào)錯(cuò)org.apache.xmlgraphics.fonts.Glyphs這個(gè)路徑下的Glyphs類(lèi)找不到
上面報(bào)錯(cuò)的路徑并不是在本地maven倉(cāng)庫(kù)的絕對(duì)路徑.而是此Glyphs類(lèi)在自己的jar包中的類(lèi)路徑,
怎么找呢,就是隨便找一個(gè)項(xiàng)目中的存在的類(lèi),然后 import org.apache.xmlgraphics.fonts.Glyphs;
導(dǎo)入這個(gè)類(lèi)

然后ctrl + 左鍵, 找到這個(gè)類(lèi),然后點(diǎn)擊定位按鈕,就能看到這個(gè)類(lèi)的所屬的jar包在本地倉(cāng)庫(kù)的絕對(duì)路徑了.

其他的后面再補(bǔ)充.
到此這篇關(guān)于如何獲取當(dāng)前 JAR 包的存放位置的文章就介紹到這了,更多相關(guān)JAR 包的存放位置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用@slf4j找不到符號(hào)log的問(wèn)題及解決
這篇文章主要介紹了使用@slf4j找不到符號(hào)log的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
SpringBoot如何動(dòng)態(tài)改變?nèi)罩炯?jí)別
這篇文章主要介紹了SpringBoot如何動(dòng)態(tài)改變?nèi)罩炯?jí)別,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-12-12
Javaweb應(yīng)用使用限流處理大量的并發(fā)請(qǐng)求詳解
這篇文章主要介紹了Javaweb應(yīng)用使用限流處理大量的并發(fā)請(qǐng)求詳解,還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-11-11
springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作
這篇文章主要介紹了springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-06-06
Java中定時(shí)器java.util.Timer的簡(jiǎn)單模擬
在Java中,定時(shí)器(Timer)是一個(gè)工具類(lèi),用于安排任務(wù)在指定時(shí)間后執(zhí)行或以指定的時(shí)間間隔重復(fù)執(zhí)行,本文就來(lái)講講如何簡(jiǎn)單模擬實(shí)現(xiàn)定時(shí)器吧2023-07-07
SpringBoot集成LiteFlow工作流引擎的完整指南
LiteFlow作為一款國(guó)產(chǎn)輕量級(jí)規(guī)則引擎/流程引擎,以其零學(xué)習(xí)成本、高可擴(kuò)展性和極致性能成為微服務(wù)架構(gòu)下的理想選擇,本文將詳細(xì)講解SpringBoot集成LiteFlow的全過(guò)程,助大家輕松駕馭輕量級(jí)流程編排2025-06-06
RocketMQ實(shí)現(xiàn)隨緣分BUG小功能示例詳解
這篇文章主要為大家介紹了RocketMQ實(shí)現(xiàn)隨緣分BUG小功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

