java:如何将jar文件中的目录复制到tmp目录?

java:如何将jar文件中的目录复制到tmp目录?,java,jar,directory,copy,Java,Jar,Directory,Copy,我知道如何用Java创建一个临时目录,但是有没有一种简单的方法可以将Java文件从jar文件复制到这个目录 File tmpDir = new File(System.getProperty("java.io.tmpdir")); File helpDir = new File(tmpDir, "myApp-help"); helpDir.createNewFile(); // oops, this isn't right, I want to create a dir URL helpURL

我知道如何用Java创建一个临时目录,但是有没有一种简单的方法可以将Java文件从jar文件复制到这个目录

File tmpDir = new File(System.getProperty("java.io.tmpdir"));
File helpDir = new File(tmpDir, "myApp-help");
helpDir.createNewFile(); // oops, this isn't right, I want to create a dir
URL helpURL = getClass().getResource("/help-info");  

/* ???? I want to copy the files from helpURL to helpDir */

Desktop desktop = Desktop.getDesktop();
URI helpURI = /* some URI from the new dir's index.html */
desktop.browse(helpURI);

Apache的
org.Apache.commons.io.FileUtils
可以为您做到这一点

要创建目录,请使用
File.mkdir()

使用
org.apache.commons.io.FileUtils.toFile(URL)


使用
org.apache.commons.io.FileUtils.copyFile()
进行复制。

apache的
org.apache.commons.io.FileUtils
可以为您完成这一任务

要创建目录,请使用
File.mkdir()

使用
org.apache.commons.io.FileUtils.toFile(URL)


使用
org.apache.commons.io.FileUtils.copyFile()
进行复制。

您可以使用命令
jartf[这里是您的jarfile]
。这将列出JAR归档文件的内容及其相对于jarfile的完整路径(1行=1个文件)。检查该行是否以要提取的目录的路径开头,并使用
Class.getResourceAsStream(URL)
查找匹配行并将其提取到临时文件夹中

下面是
jar tf
的输出示例:

META-INF/MANIFEST.MF TicTacToe.class audio/ audio/beep.au audio/ding.au audio/return.au audio/yahoo1.au audio/yahoo2.au images/ images/cross.gif images/not.gif META-INF/MANIFEST.MF 提克塔克 音频/ 音频/beep.au 音频/丁欧 audio/return.au 音频/yahoo1.au 音频/yahoo2.au 图像/ image/cross.gif 图像/not.gif
您可以使用命令
jartf[这里是您的jarfile]
。这将列出JAR归档文件的内容及其相对于jarfile的完整路径(1行=1个文件)。检查该行是否以要提取的目录的路径开头,并使用
Class.getResourceAsStream(URL)
查找匹配行并将其提取到临时文件夹中

下面是
jar tf
的输出示例:

META-INF/MANIFEST.MF TicTacToe.class audio/ audio/beep.au audio/ding.au audio/return.au audio/yahoo1.au audio/yahoo2.au images/ images/cross.gif images/not.gif META-INF/MANIFEST.MF 提克塔克 音频/ 音频/beep.au 音频/丁欧 audio/return.au 音频/yahoo1.au 音频/yahoo2.au 图像/ image/cross.gif 图像/not.gif
嗯,可能是hmm的重复,可能是它的重复,不是他的目录不能像文件一样处理,因为它在JAR里面。我的错误,我认为他在
war
中有资源,所以它们已经被部署者提取。不是他的目录不能像文件一样处理,因为它在JAR里面。我的错误,我以为他在
战争
中拥有资源,因此部署人员已经提取了这些资源。