检查文件是否与jar文件位于同一目录中

时间:2013-08-01 11:32:54

标签: java file-io

我知道如何检查特定目录或特定目录中的文件,但我无法弄清楚如何检查正在运行的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.
    }

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在此帖子中使用ProtectionDomain呈现了一种可能的解决方案:Loading a file relative to the executing jar file

答案 2 :(得分:0)

对于已知在该JAR文件中的任何类,Class.getProtectionDomain().getCodeSource().getLocation()给出了JAR文件的位置。