0

我知道如何检查特定目录或特定目录中的文件,但我不知道如何检查正在运行的 jar 之外但与它位于同一目录中的文件:Test.jar - Ran -> 获取 Test.file 的位置 Test.file

已回答——谢谢!

这很好用;

final Class<?> referenceClass = Client.class;
    final URL url = referenceClass.getProtectionDomain().getCodeSource().getLocation();
    try{
        final File jarPath = new File(url.toURI()).getParentFile();
        System.out.println(jarPath);
    } catch(final URISyntaxException e){
        // etc.
    }
4

3 回答 3

1

您可以使用 createNewFile() 操作创建一个新文件,获取该文件的位置并再次删除该文件。新文件将在与运行 jar 文件的位置相同的位置生成。

于 2013-08-01T11:35:52.823 回答
1

ProtectionDomain在这个线程中使用了一个可能的解决方案: Loading a file relative to the execution jar file

于 2013-08-01T11:50:54.067 回答
0

JAR 文件的位置由该 JAR 文件中已知的Class.getProtectionDomain().getCodeSource().getLocation()任何类给出。

于 2013-08-01T11:49:12.043 回答