當前位置:首頁 » 編程語言 » java的相對路徑

java的相對路徑

發布時間: 2022-09-21 09:37:19

A. java中處理絕對路徑與相對路徑問題

方法(一)、通過某個對象的getClass()方法取得Class,其中包含了類的許多信息。在其中找取得URL之類的方法,以便取得URL,然後調用URL的getpath()方法,取得字元串並稍作處理就得到該類的Class文件的絕對路徑,在此基礎上就可以方便的使用相對路徑。Object.getClass().getResource("/").getPath(); 方法(二) 通過類載入器獲取路徑信息public abstract class ClassLoader extends Object類載入器是負責載入類的對象。ClassLoader 類是一個抽象類。如果給定類的二進制名稱,那麼類載入器會試圖查找或生成構成類定義的數據。一般策略是將名稱轉換為某個文件名,然後從文件系統讀取該名稱的「類文件」。 (1) 利用Thread類中的類載入器Thread.currentThread().getContextClassLoader()(2) 利用Class類獲取類載入器ClassName.class(或者 對象.getClass()).getClassLoader()API中ClassLoader的相關方法1、public URL getResource(String name)查找具有給定名稱的資源。資源是可以通過類代碼以與代碼基無關的方式訪問的一些數據(圖像、聲音、文本等)。資源名稱是以 '/' 分隔的標識資源的路徑名稱。 此方法首先搜索資源的父類載入器;如果父類載入器為 null,則搜索的路徑就是虛擬機的內置類載入器的路徑。如果搜索失敗,則此方法將調用 findResource(String) 來查找資源。 2、public static URL getSystemResource(String name)從用來載入類的搜索路徑中查找具有指定名稱的資源。此方法通過系統類載入器來查找資源。 方法(三)利用文件來獲取路徑 File ff=new File("");API中File類相關的方法:java.io.File 文件和目錄路徑名的抽象表示形式。1、public String getAbsolutePath() 返回此抽象路徑名的絕對路徑名字元串2、public String getCanonicalPath() throws IOException 返回此抽象路徑名的規范路徑名字元串。 3、public String getPath() 將此抽象路徑名轉換為一個路徑名字元串。所得字元串使用默認名稱分隔符分隔名稱序列中的名稱。4、public boolean isAbsolute()測試此抽象路徑名是否為絕對路徑名。絕對路徑名的定義與系統有關。在 UNIX 系統上,如果路徑名的前綴是 "/",那麼該路徑名是絕對路徑名。在 Microsoft Windows 系統上,如果路徑名的前綴是後跟 "\\" 的盤符,或者是 "\\\\",那麼該路徑名是絕對路徑名。 方法(四)利用System類提供信息java.lang.System 包 public final class System extends Object 類 System 類包含一些有用的類欄位和方法。它不能被實例化。在 System 類提供的設施中,有標准輸入、標准輸出和錯誤輸出流;對外部定義的屬性和環境變數的訪問;載入文件和庫的方法;還有快速復制數組的一部分的實用方法。方法:public static String getProperty(String key) 獲取指定鍵指示的系統屬性。首先,如果有安全管理器,則用該鍵作為其參數來調用 checkPropertyAccess 方法。結果可能導致 SecurityException。 如果沒有當前系統屬性的集合,則首先用與 getProperties 方法相同的方式創建並初始化系統屬性的集合。 參數: key - 系統屬性的名稱。返回: 系統屬性的字元串值,如果沒有帶有此鍵的屬性,則返回 null。 獲取當前工作目錄為:System.getProperty("user.dir") // 方法一,利用Class的getResource方法類獲取信息(實際上該方法委託ClassLoader類實現) url= absp.getClass().getResource("/AbsPath.class"); path = url.getPath(); System.out.println("方法一:\nURL is : " + url); System.out.println("get Path is : " + path); System.out.println("Real Path is : " + path.substring(1)+"\n"); // 方法二,利用ClassLoader類獲取信息 ClassLoader loader=Thread.currentThread().getContextClassLoader(); //或者 //loader = AbsPath.class.getClassLoader(); url=loader.getResource(""); path=url.getPath(); System.out.println("方法二:\nURL is : " + url); System.out.println("get Path is : " + path); System.out.println("Real Path is : " + path.substring(1)); System.out.println(ClassLoader.getSystemResource("")+"\n"); // 方法三,利用文件來處理 File ff=new File(""); System.out.println("方法三:\n"+ff.getAbsolutePath()); System.out.println(ff.getCanonicalPath()); System.out.println(ff.isAbsolute()+ff.getPath()+"\n"); //方法四,利用System類相關信息 System.out.println("方法四:\n"+System.getProperty("user.home"));//用戶主目錄 System.out.println(System.getProperty("user.dir"));//用戶的當前工作目錄 System.out.println(System.getProperty("java.class.path"));//Java類路徑 System.out.println(System.getProperty("os.name"));//操作系統名稱 System.out.println(System.getProperty("os.version"));//操作系統版本 方法一:URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.classget Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.classReal Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class 方法二:URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/get Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/Real Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/file:/D:/Java/EclipseWorkSpace/MyJavaDocs/ 方法三:D:\Java\EclipseWorkSpace\MyJavaDocsD:\Java\EclipseWorkSpace\MyJavaDocsfalse 方法四:d:\我的文檔D:\Java\EclipseWorkSpace\MyJavaDocsD:\Java\EclipseWorkSpace\MyJavaDocsWindows XP5.1

B. java 相對路徑問題求助

從項目運行的根目錄或者說從項目運行的目錄就是相對路徑,可以這樣寫

WebContent\\pic
注意文件路徑的\\,下劃線要不就是/,要不就是\\
如果上面的目錄不對,就找你程序運行的根目錄,從根目錄開始寫,但是不包括根目錄,
比如A文件夾下面有B,B文件夾下面有C
而C的相對路徑就是b/c,不包括a

C. java怎麼獲取文件的相對路徑

一個例子,如果有一個Test文件夾裡面有test.java和hello.txt.如果你想用test.java操作hello.txt
只要在test.java中這樣寫File file=new File("hello.txt");//這樣就是相對路徑。如果文件結構是
Test文件夾
... |------test.java
... |------hello.txt
... |------source文件夾
................. |---------world.txt
如果想在test.java中操作world.txt。只要這樣寫File file=new File("source/world.txt");
另外,在web開發中/代表項目文件夾根目錄,當然也有可能代替webapps,區分方法是:如果/開頭的uri是給瀏覽器解析則/代表webapps,如果是給伺服器後台解析,則代表項目文件

D. java里絕對路徑和相對路徑的區別是什麼

按照jdk Doc上的說法」絕對路徑名是完整的路徑名,不需要任何其他信息就可以定位自身表示的文件。相反,相對路徑名必須使用來自其他路徑名的信息進行解釋。默認情況下,java.io 包中的類總是根據當前用戶目錄來分析相對路徑名。此目錄由系統屬性 user.dir 指定,通常是 Java 虛擬機的調用目錄.」

相對路徑顧名思義,相對於某個路徑,那麼究竟相對於什麼路徑我們必須弄明白.按照上面jdk文檔上講的這個路徑是」當前用戶目錄」也就是」java虛擬機的調用目錄」.更明白的說這個路徑其實是我們在哪裡調用jvm的路徑.舉個例子:

假設有一java源文件Example.java在d盤根目錄下,該文件不含package信息.我們進入命令行窗口,然後使用」d:」命令切換到d盤根目錄下,然後用」javac Example.java」來編譯此文件,編譯無錯後,會在d盤根目錄下自動生成」Example.class」文件.我們在調用」java Example」來運行該程序.此時我們已經啟動了一個jvm,這個jvm是在d盤根目錄下被啟動的,所以此jvm所載入的程序中File類的相對路徑也就是相對這個路徑的,即d盤根目錄:D:/.同時」 當前用戶目錄」也是D:/.在System.getProperty(「user.dir」);系統變數」user.dir」存放的也是這個值.
我們可以多做幾次試驗,把」Example.class」移動到不同路徑下,同時在那些路徑下,執行」java Example」命令啟動jvm,我們會發現這個」當前用戶目錄」是不斷變化的,它的路徑始終和我們在哪啟動jvm的路徑是一致的.
搞清了這些,我們可以使用相對路徑來創建文件,例如:
File file = new File(「a.txt」);
File.createNewFile();
假設jvm是在」D:/」下啟動的,那麼a.txt就會生成在D:/a.txt;
此外,這個參數還可以使用一些常用的路徑表示方法,例如」.」或」./」代表當前目錄,這個目錄也就是jvm啟動路徑.所以如下代碼能得到當前目錄完整路徑:
File f = new File(「.」);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:/
最後要說說在eclipse中的情況:
Eclipse中啟動jvm都是在項目根路徑上啟動的.比如有個項目名為blog,其完整路徑為:D:/work/IDE/workspace/blog.那麼這個路徑就是jvm的啟動路徑了.所以以上代碼如果在eclipse里運行,則輸出結果為」 D:/work/IDE/workspace/blog.」

Tomcat中的情況.
如果在tomcat中運行web應用,此時,如果我們在某個類中使用如下代碼:
File f = new File(「.」);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
那麼輸出的將是tomcat下的bin目錄.我的機器就是」 D:/work/server/jakarta-tomcat-5.0.28/bin/.」,由此可以看出tomcat伺服器是在bin目錄下啟動jvm的.其實是在bin目錄下的」 catalina.bat」文件中啟動jvm的.

E. java相對路徑

路徑要這樣寫:this.getClass().getResource("/").getPath() + image/tit.gif

如果你的class是靜態的:
類名.getClass().getResource("/").getPath() + image/tit.gif

F. java絕對路徑和相對路徑的區別

1.基本概念的理解

絕對路徑:絕對路徑就是你的主頁上的文件或目錄在硬碟上真正的路徑,(URL和物理路徑)例如:
C:\xyz\test.txt 代表了test.txt文件的絕對路徑。http://www.sun.com/index.htm也代表了一個
URL絕對路徑。

相對路徑:相對與某個基準目錄的路徑。包含Web的相對路徑(HTML中的相對目錄),例如:在
Servlet中,"/"代表Web應用的根目錄。和物理路徑的相對表示,例如:"./" 代表當前目錄,
"../"代表上級目錄。這種類似的表示,也是屬於相對路徑。

G. java 相對路徑問題。

在最前面加點的話就告訴file找的時候當前目錄找不到,就去相對的路徑去找,一般要相對路徑的話都是加點,兩個點點尋找的返回可能大些,但也值在項目目錄里找,直接/的話,這個貌似要在web項目里使用,直接在普通的項目里可能不行,你可以試試不每個file的absolutepath輸出一下看看都是什麼結果
幫你找了下別人寫的:
File類是用來構造文件或文件夾的類,在其構造函數中要求傳入一個String類型的參數,用於指示文件所在的路徑.以前一直使用絕對路徑作為參數,其實這里也可以使用相對路徑.使用絕對路徑不用說,很容易就能定位到文件,那麼使用了相對路徑jvm如何定位文件的呢?

按照jdk Doc上的說法」絕對路徑名是完整的路徑名,不需要任何其他信息就可以定位自身表示的文件。相反,相對路徑名必須使用來自其他路徑名的信息進行解釋。默認情況下,java.io 包中的類總是根據當前用戶目錄來分析相對路徑名。此目錄由系統屬性 user.dir 指定,通常是 Java 虛擬機的調用目錄.」

相對路徑顧名思義,相對於某個路徑,那麼究竟相對於什麼路徑我們必須弄明白.按照上面jdk文檔上講的這個路徑是」當前用戶目錄」也就是」java虛擬機的調用目錄」.更明白的說這個路徑其實是我們在哪裡調用jvm的路徑.舉個例子:

假設有一java源文件Example.java在d盤根目錄下,該文件不含package信息.我們進入命令行窗口,然後使用」d:」命令切換到d盤根目錄下,然後用」javac Example.java」來編譯此文件,編譯無錯後,會在d盤根目錄下自動生成」Example.class」文件.我們在調用」java Example」來運行該程序.此時我們已經啟動了一個jvm,這個jvm是在d盤根目錄下被啟動的,所以此jvm所載入的程序中File類的相對路徑也就是相對這個路徑的,即d盤根目錄:D:\.同時」 當前用戶目錄」也是D:\.在System.getProperty(「user.dir」);系統變數」user.dir」存放的也是這個值.

我們可以多做幾次試驗,把」Example.class」移動到不同路徑下,同時在那些路徑下,執行」java Example」命令啟動jvm,我們會發現這個」當前用戶目錄」是不斷變化的,它的路徑始終和我們在哪啟動jvm的路徑是一致的.

搞清了這些,我們可以使用相對路徑來創建文件,例如:

File file = new File(「a.txt」);

File.createNewFile();

假設jvm是在」D:\」下啟動的,那麼a.txt就會生成在D:\a.txt;

此外,這個參數還可以使用一些常用的路徑表示方法,例如」.」或」.\」代表當前目錄,這個目錄也就是jvm啟動路徑.所以如下代碼能得到當前目錄完整路徑:

File f = new File(「.」);

String absolutePath = f.getAbsolutePath();

System.out.println(absolutePath);//D:\

最後要說說在eclipse中的情況:

Eclipse中啟動jvm都是在項目根路徑上啟動的.比如有個項目名為blog,其完整路徑為:D:\work\IDE\workspace\blog.那麼這個路徑就是jvm的啟動路徑了.所以以上代碼如果在eclipse里運行,則輸出結果為」 D:\work\IDE\workspace\blog.」

Tomcat中的情況.

如果在tomcat中運行web應用,此時,如果我們在某個類中使用如下代碼:

File f = new File(「.」);

String absolutePath = f.getAbsolutePath();

System.out.println(absolutePath);

那麼輸出的將是tomcat下的bin目錄.我的機器就是」 D:\work\server\jakarta-tomcat-5.0.28\bin\.」,由此可以看出tomcat伺服器是在bin目錄下啟動jvm的.其實是在bin目錄下的」 catalina.bat」文件中啟動jvm的.

H. java 的相對路徑怎麼寫

webapp?
你這是什麼環境呢?

你首先要得到當前目錄的路徑才行的吧

「/WEB-INF/dic"應該這樣就可以了的吧

I. java相對路徑怎麼寫

File file=new File("Word.txt");這就是定義變數"file"相對路徑的方法,該相對路徑的目標文件為「Word.txt」

J. java里絕對路徑和相對路徑的區別

絕對路徑是從跟路徑開始找目標文件的,相對路徑是從當前目錄開始找目標文件的(也就說目標文件相對於當前的路徑是怎麼樣的)

熱點內容
路虎攬運配置怎麼查詢 發布:2025-01-11 03:42:51 瀏覽:392
仿站源碼 發布:2025-01-11 03:42:05 瀏覽:39
騰訊的雲伺服器 發布:2025-01-11 03:40:47 瀏覽:569
百分之十的演算法 發布:2025-01-11 03:34:30 瀏覽:642
java16進制tostring 發布:2025-01-11 03:24:21 瀏覽:721
mql4c語言 發布:2025-01-11 03:24:20 瀏覽:255
科爾訪問蘇聯 發布:2025-01-11 03:15:47 瀏覽:331
python簡單計算器 發布:2025-01-11 03:15:13 瀏覽:577
python絕對路徑 發布:2025-01-11 03:10:55 瀏覽:759
優衣庫壓縮 發布:2025-01-11 03:06:36 瀏覽:354