我有一个获取当前 jar 文件路径的代码。但是有一个奇怪的事情:我有两个 jar 文件(两个不同的项目)。在项目 A:当我运行它并打印到控制台时,我看到它打印正确。但是,在项目 B:它只是打印当前 jar 文件的驱动器,而不是文件夹。
例如:文件夹 D:\temp 中的 A.jar 和 B.jar:
B的结果:/D:/temp/
A的结果:(./
前面有一个点!!!)
这是我的代码:
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);