【问题标题】:Is there a way to programmatically copy a resource file from within a JAR to an external folder?有没有办法以编程方式将 JAR 中的资源文件复制到外部文件夹?
【发布时间】:2015-05-25 01:57:11
【问题描述】:

我正在尝试从当前运行的 jar 文件中访问资源文件。我现在需要的资源是一个 jar 文件,但我需要一种适用于任何文件的方法。我尝试过查看不同的解决方案,但到目前为止,它们都没有奏效。我试图使用 URL 指向 jar 中文件的绝对路径,但这似乎不起作用。我已经检查了路径,它应该正在获取该文件。无论我做什么,URL 总是返回 null。我正在使用 Apache Commons-IO。

这是我目前的代码。

private static void copyFiles() {
URL source = ClassName.class.getClass().getResource("/resources/file.jar");
    File target = new File(System.getProperty("user.home") + 
            System.getProperty("file.separator") + "Desktop" + 
            System.getProperty("file.separator") + "filename");
    try {
        FileUtils.copyURLToFile(source, target);
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
    return true;
}

这会引发 NullPointerException。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 您所说的“可以处理任何文件”是什么意思?那个“任何文件”是一个罐子吗?另外,您使用 Java 7+ 吗?
  • 我找到了一种方法。不过,感谢您的帮助。非常感谢!

标签: java jar getresource apache-commons-io


【解决方案1】:

您可以使用Class.getResourceAsStream(...) 获取该资源的 InputStream(可以在类路径上的 .jar 内部或外部),然后将其写入其他位置。

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2014-07-26
    • 2019-09-28
    • 2011-09-02
    相关资源
    最近更新 更多