0

我有一个获取当前 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);
4

1 回答 1

0

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

于 2012-04-13T20:43:56.873 回答