我有兩個方法來獲取罐路徑如何在Linux中使用java命令獲取當前正在執行的jar包的空間路徑?
1)
File file = new File(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getName());
String filename = file.getAbsolutePath().toString();
2)
String filename2 = Main.class.getProtectionDomain().getCodeSource().getLocation().toString().substring(6);
第一種方法完全適用於Windows和Mac,但在Linux上,如果我的罐子如果我的終端位於/home/user/
,即使MyJar.jar路徑爲'/home/user/Documents/test folder/'
,也會返回/home/user/MyJar.jar
。
對於每個操作系統,第二種方法將返回到文件的正確路徑,但空格替換爲%20。
例:/home/user/Documents/test%20folder/MyJar.jar
我怎樣才能獲得在Linux中的絕對路徑以同樣的方式我爲Windows和Mac做的,沒有20%的空間置換?
如果第二個最適合你和你只是擔心' %20',那麼你可以簡單地添加'.replace(「%20」,「」)'來替換所有的空格! – user2004685
更好地解碼jar的位置,而不是手動將%20替換爲空格 – Naruto
我不知道這是解決該問題的解決方法,但「java.net.url.URLDecoder.decode」怎麼辦? – engineercoding