我有一个代码,它接受当前jar文件的路径。但有一个奇怪的事情:我有两个jar文件(两个不同的项目)。在项目A:当我运行它并打印到控制台时,我看到它打印正确。 但是,在项目B:它只打印当前jar文件的驱动器,而不是文件夹。
例如:文件夹D:\ temp:
中的A.jar和B.jar 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);
答案 0 :(得分:0)
据我所知,当我在java中使用目录时,句号(。)表示当前目录。可能它只是java表现得很奇怪?或者你同时运行两个罐子?尝试在B之前运行A,反之亦然,看看它是否有所不同。 (我会把它作为评论,但我不认为我有足够的声誉这样做:()