Java 从jar中提取特定文件夹,并将其复制到我的系统上所需的目标

Java 从jar中提取特定文件夹,并将其复制到我的系统上所需的目标,java,resources,jar,directory,extract,Java,Resources,Jar,Directory,Extract,我需要将资源文件夹从jar中提取到系统中所需的位置。我想通过调用同一个jar中的类中的函数来实现这一点 我不想一次复制一个文件。你能给我一个复制整个文件夹的方法吗 我最初想把它们压缩成一个zip文件,复制到其他地方,然后提取出来。 这将如何工作?有没有更有效的方法 提前感谢。如果您打算使用java API执行此操作,我只知道一种方法:您必须使用JarInputStream或ZipInputStream,迭代Zip条目,检测哪些条目属于文件夹并提取它们,即从Zip读取并写入磁盘。没有其他“神奇”的

我需要将资源文件夹从jar中提取到系统中所需的位置。我想通过调用同一个jar中的类中的函数来实现这一点

我不想一次复制一个文件。你能给我一个复制整个文件夹的方法吗

我最初想把它们压缩成一个zip文件,复制到其他地方,然后提取出来。 这将如何工作?有没有更有效的方法


提前感谢。

如果您打算使用java API执行此操作,我只知道一种方法:您必须使用JarInputStream或ZipInputStream,迭代Zip条目,检测哪些条目属于文件夹并提取它们,即从Zip读取并写入磁盘。没有其他“神奇”的方法

但是,如果您愿意,您可能可以使用某种更高级别的API。检查雅加达的VFS:


它提供的API可能满足您的需要

如果您打算使用java API执行此操作,我只知道一种方法:您必须使用JarInputStream或ZipInputStream,迭代Zip条目,检测哪些条目属于文件夹并将其解压缩,即从Zip读取并写入磁盘。没有其他“神奇”的方法

但是,如果您愿意,您可能可以使用某种更高级别的API。检查雅加达的VFS:


它提供的API可能满足您的需要

您可以使用
Runtime.exec
api执行类似于以下内容的操作:

jar xf <your_jar_file_name> <path_to_directory_to_be_extracted>
jarxf
通过这种方式,您不必创建专门的类来处理Jar文件,您可以专注于解决手头的实际问题


注意:这仅限于JDK可能无法在JRE上工作。

您可以使用
Runtime.exec
api执行类似于以下内容的操作:

jar xf <your_jar_file_name> <path_to_directory_to_be_extracted>
jarxf
通过这种方式,您不必创建专门的类来处理Jar文件,您可以专注于解决手头的实际问题


注意:这仅限于JDK可能无法在JRE上工作。

或者,使用类路径上的tools.jar,您可以在不启动外部进程的情况下执行此操作:
sun.tools.jar.Main.Main(“xf”,jarfilename,path)
我需要从类内部执行此操作。这些资源实际上是js、css文件等,我需要将它们复制到所需的位置以显示我的网页<代码>Runtime.exec(“任意命令”)-但更改工作目录几乎是不可能的。您可以将整个过程包装在批处理/shell文件中,然后使用
exec
API从java应用程序调用它。使脚本具有足够的通用性,以获取命令行参数,您可以通过不同风格的
exec
API传递它们。或者,使用类路径上的tools.jar,您可以在不启动外部进程的情况下进行传递:
sun.tools.jar.Main.Main(“xf”,jarfilename,path)
我需要从类内部执行此操作。这些资源实际上是js、css文件等,我需要将它们复制到所需的位置以显示我的网页<代码>Runtime.exec(“任意命令”)-但更改工作目录几乎是不可能的。您可以将整个过程包装在批处理/shell文件中,然后使用
exec
API从java应用程序调用它。使脚本足够通用,以获取命令行参数,您可以通过不同风格的
exec
API传递它们。