我需要将资源文件夹从jar中提取到系统中的所需位置。我想通过调用类中的函数来实现它,该类在同一个jar中。
我不想一次复制一个文件。能否请您建议我复制整个文件夹的方法?
我最初想过将它们压缩成zip,然后将其复制到其他地方并将其解压缩。 这将如何运作?有没有更有效的方法来做到这一点?
提前致谢。
答案 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。