有没有办法以编程方式将资源文件从JAR中复制到外部文件夹?

时间:2015-03-21 19:39:09

标签: java jar getresource apache-commons-io

我正在尝试从当前运行的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。任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

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