我有两个方法来获取罐路径如何在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