Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以通过编程将JAR中的资源文件复制到外部文件夹?_Java_Jar_Getresource_Apache Commons Io - Fatal编程技术网

Java 有没有一种方法可以通过编程将JAR中的资源文件复制到外部文件夹?

Java 有没有一种方法可以通过编程将JAR中的资源文件复制到外部文件夹?,java,jar,getresource,apache-commons-io,Java,Jar,Getresource,Apache Commons Io,我试图从当前正在运行的jar文件中访问资源文件。我现在需要的资源是一个jar文件,但我需要一种适用于任何文件的方法。我试过寻找不同的解决方案,但到目前为止没有一个有效。我试图使用URL指向jar中文件的绝对路径,但这似乎不起作用。我已经检查了路径,它应该得到那个文件。无论我做什么,URL总是返回null。我正在使用ApacheCommonsIO 这是到目前为止我的代码 private static void copyFiles() { URL source = ClassName.class.g

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

这是到目前为止我的代码

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。感谢您的帮助。谢谢。

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

您所说的“将使用任何文件”是什么意思?那个“任何文件”是jar吗?另外,您是否使用Java7+?我找到了一种方法。不过谢谢你的帮助。非常感谢!