【问题标题】:Check if a file exists in the same directory as the jar file检查jar文件所在目录是否存在文件
【发布时间】:2013-08-02 07:22:27
【问题描述】:

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

【问题讨论】:

  • 你试过./myfile路径吗?
  • 你是对的!我想我只是没有正确地用词,当我发布这个时它没有出现。虽然我已经得到了答案,但谢谢大家的帮助!
  • @user1782911 请接受对您有帮助的答案。

标签: java file-io


【解决方案1】:

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

【讨论】:

  • 我认为 createNewFile() 将在 Java 的当前工作目录中创建文件。同样,可以从System.getProperty("user.dir");读取值
  • “JAR 文件在哪里运行”与 JAR 文件 在哪里不同。
【解决方案2】:

在此线程中使用ProtectionDomain 提出了一种可能的解决方案:Loading a file relative to the executing jar file

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-10
      • 2011-09-23
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多