获取Jar文件的路径:不同项目的不同结果

时间:2012-04-13 18:24:08

标签: java path jar

我有一个代码,它接受当前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);

1 个答案:

答案 0 :(得分:0)

据我所知,当我在java中使用目录时,句号(。)表示当前目录。可能它只是java表现得很奇怪?或者你同时运行两个罐子?尝试在B之前运行A,反之亦然,看看它是否有所不同。 (我会把它作为评论,但我不认为我有足够的声誉这样做:()