Java: Как скопировать каталог в JAR-файл в каталог TMP? - PullRequest
1 голос
/ 07 июня 2011

Я знаю, как создать временный каталог на 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);

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Apache org.apache.commons.io.FileUtils может сделать это за вас

Для создания каталога используйте File.mkdir();

Конвертировать URL в файл с помощью org.apache.commons.io.FileUtils.toFile(URL)

используйте org.apache.commons.io.FileUtils.copyFile() длякопия.

0 голосов
/ 07 июня 2011

Вы можете использовать команду jar tf [here your jarfile]. Это перечислит содержимое архива JAR с указанием полного пути относительно файла jar (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
...