【问题标题】:java: How to copy a directory in a jar file to a tmp dir?java:如何将 jar 文件中的目录复制到 tmp 目录?
【发布时间】:2011-09-10 06:07:04
【问题描述】:

我知道如何在 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);

【问题讨论】:

标签: java jar directory copy


【解决方案1】:

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

创建目录使用File.mkdir();

使用org.apache.commons.io.FileUtils.toFile(URL)将网址转换为文件

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

【讨论】:

  • 不是他的目录不能像文件一样处理,因为它在JAR里面。
  • 我的错,我以为他有war中的资源,所以他们已经被部署者提取了。
【解决方案2】:

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

这是jar tf 的示例输出:

元信息/清单.MF 井字游戏类 声音的/ 音频/哔哔声.au 音频/ding.au 音频/return.au 音频/yahoo1.au 音频/yahoo2.au 图片/ 图片/cross.gif 图片/not.gif

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    相关资源
    最近更新 更多