我嘗試檢索可執行jar文件所在目錄的路徑。 這意味着:我有以下結構:如何獲取我運行的jar文件所在目錄的路徑?
--> Application (this is a folder somewhere in my file system)
--> application.jar (this is my java application
--> SomeData (folder in the same directory like the application)
--> some other folders
......
當我開始通過命令行我想解析SomeData文件夾內的一些文件我application.jar。 在https://stackoverflow.com/a/320595/1540630他們已經展示瞭如何獲得運行jar文件的當前路徑,但是當我執行語句:
System.out.println(XMLParser.class.getProtectionDomain().getCodeSource().getLocation().getPath());
...我只是得到如下結果:
/.../Application/application.jar
但我只是想有:
/.../Application/
更好的在後面的步驟說我需要
/.../Application/SomeData/SomeFolder/data.xml
有人能幫助我嗎?
問題是,我不能只將一個URL到一個XML到XML解析器。在我的SomeData文件夾下面有許多其他文件夾,在這些文件夾內部,每個文件夾都有一個xml。我必須遍歷所有文件夾中的所有xml文件。但起初我只想到達xml文件的「根」文件夾......所以這不是應用程序所在的根文件夾,而是所有其他fodlers和xmls所在的文件夾(所以對於我們的例如,這將是「SomeData」文件夾 – Metalhead89 2012-07-23 13:54:19
如何獲得我的根文件夾的URL CodeSource.getLocation() 只是給了我應用程序的URL:...../Application/application.jar。但是這對我沒有用:( – Metalhead89 2012-07-23 14:04:35
是的,一旦你有了一個到JAR文件的URL,你就可以使用相對路徑創建其他URL,就像HTML頁面中的相對鏈接針對包含HTML文件的文件夾一樣被解析 - 所以'新URL(theJarUrl,「SomeData/SomeFolder /」)'是URL文件:/..../ Application/SomeData/SomeFolder /',然後你可以使用技術I將它轉換成'File'鏈接到我的答案結束 – 2012-07-23 15:14:16