2012-04-13 69 views
0

我具有利用當前jar文件的路徑中的代碼。但有一件奇怪的事情:我有兩個jar文件(兩個不同的項目)。在項目A:當我運行並打印到控制檯時,我看到它正確打印。 但是,在項目B:它只是打印當前jar文件的驅動器,而不是直到文件夾。獲得Jar文件的路徑:不同的結果爲不同的項目

例如:既a.jar文件和B.jar在文件夾d:\溫度:B的

結果:將/D:/temp/

結果:./(之前具有點!!!)

這裏是我的代碼:(。)

 String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); 
     String decodedPath = URLDecoder.decode(path, "UTF-8"); 
     String RealPath = decodedPath.substring(0, decodedPath.lastIndexOf("/") + 1); 

     System.out.println("path: " + path); 
     System.out.println("decodePath: "+decodedPath); 
     System.out.println("Real path not include file name: "+RealPath); 
+1

您可以發佈您用來啓動這兩個項目在命令行中表達? – dash1e 2012-04-13 19:15:32

+0

*「我有一個代碼稱取當前jar文件的路徑。「*爲什麼? – 2012-04-13 20:21:43

+0

正常工作對我來說,你要是跑不過它作爲一個.class我沒有得到預期的行爲爲貴‘你順便說一句使用什麼控制檯/終端的真實路徑’? – 2012-04-13 20:54:14

回答

0

據我知道,當我在Java目錄工作句號表示當前目錄。可能它可能只是java怪異的行爲?或者你是否同時運行兩個罐子?嘗試在B之前運行A,反之亦然,並查看它是否有所不同。 (我會做這個作爲一個評論,但我不認爲我有足夠的聲譽這樣做:()