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

时间:2011-07-11 14:59:25

标签: java resources jar directory extract

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

我不想一次复制一个文件。能否请您建议我复制整个文件夹的方法?

我最初想过将它们压缩成zip,然后将其复制到其他地方并将其解压缩。 这将如何运作?有没有更有效的方法来做到这一点?

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

但是如果你想要,你可以使用某种更高级别的API。检查雅加达的VFS:http://commons.apache.org/vfs/

它提供了可能满足您需求的API。

答案 1 :(得分:0)

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

jar xf <your_jar_file_name> <path_to_directory_to_be_extracted>

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

注意:这仅限于JDK可能不适用于JRE。