Java獲取路徑的6種方式代碼示例

public class Demo1 {
public static void main(String[] args) {
/*
1.使用 System 屬性
*/
// 獲取用戶的主目錄
String userHome = System.getProperty("user.home");
System.out.println("User Home: " + userHome);
// 獲取Java的安裝目錄
String javaHome = System.getProperty("java.home");
System.out.println("Java Home: " + javaHome);
/*
* 2.使用 ClassLoader 獲取資源路徑
*/
// 獲取類路徑下的資源文件路徑
ClassLoader classLoader = Demo1.class.getClassLoader();
URL resourceUrl = classLoader.getResource("config.properties");
String resourcePath = resourceUrl != null ? resourceUrl.getPath() : null;
System.out.println("Resource Path: " + resourcePath);
/*
3.使用 File 類
*/
// 創(chuàng)建一個(gè)File對(duì)象
File file = new File("example.txt");
// 獲取絕對(duì)路徑
String absolutePath = file.getAbsolutePath();
System.out.println("Absolute Path: " + absolutePath);
// 獲取相對(duì)路徑(相對(duì)于當(dāng)前工作目錄)
String canonicalPath;
try {
canonicalPath = file.getCanonicalPath();
System.out.println("Canonical Path: " + canonicalPath);
} catch (IOException e) {
e.printStackTrace();
}
// 獲取父目錄路徑
String parentPath = file.getParent();
System.out.println("Parent Path: " + parentPath);
/*
4.使用 Paths 類(Java 7及以上)
*/
// 獲取當(dāng)前工作目錄
Path currentDir = Paths.get(".").toAbsolutePath();
System.out.println("Current Directory: " + currentDir);
// 拼接路徑
Path filePath = Paths.get(currentDir.toString(), "example.txt");
System.out.println("File Path: " + filePath);
/*
5.使用 URI
*/
File file2 = new File("example.txt");
URI uri = file2.toURI();
String uriPath = uri.getPath();
System.out.println("URI Path: " + uriPath);
/*
6. 獲取當(dāng)前執(zhí)行文件的路徑(Java應(yīng)用)
*/
String path = Demo1.class.getProtectionDomain().getCodeSource().getLocation().getPath();
System.out.println("Executable Path: " + path);
}
}

總結(jié)
到此這篇關(guān)于Java獲取路徑的6種方式的文章就介紹到這了,更多相關(guān)Java獲取路徑方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳談Array和ArrayList的區(qū)別與聯(lián)系
下面小編就為大家?guī)?lái)一篇詳談Array和ArrayList的區(qū)別與聯(lián)系。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Java使用Spire.PDF for Java實(shí)現(xiàn)旋轉(zhuǎn)PDF頁(yè)面
在日常的文檔處理工作中,我們經(jīng)常會(huì)遇到 PDF 頁(yè)面方向不正確的問(wèn)題,本文將深入探討如何利用 Java 實(shí)現(xiàn) PDF 頁(yè)面的旋轉(zhuǎn)操作,感興趣的小伙伴可以了解下2025-09-09
RabbitMQ中的死信隊(duì)列(Dead Letter Exchanges)詳解
這篇文章主要介紹了RabbitMQ中的死信隊(duì)列(Dead Letter Exchanges)詳解,當(dāng)RabbitMQ出現(xiàn)死信,可能會(huì)導(dǎo)致業(yè)務(wù)邏輯錯(cuò)誤,比如下訂單后修改庫(kù)存操作,在下單后因?yàn)槟撤N原因,發(fā)送的消息未被簽收,這時(shí)庫(kù)存數(shù)據(jù)會(huì)出現(xiàn)不一致,需要的朋友可以參考下2023-12-12
詳解在idea 中使用Mybatis Generator逆向工程生成代碼
這篇文章主要介紹了在idea 中使用Mybatis Generator逆向工程生成代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Java基礎(chǔ)教程之基本類型數(shù)據(jù)類型、包裝類及自動(dòng)拆裝箱
這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之基本類型數(shù)據(jù)類型、包裝類及自動(dòng)拆裝箱的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
LIS 最長(zhǎng)遞增子序列 Java的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇LIS 最長(zhǎng)遞增子序列 Java的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09

