#java #jar
#java #jar
Вопрос:
Тест папки содержит различные файлы и скоросшиватели. Я хочу создать jar, который содержит только вложенные папки и файлы теста, без имени каталога (Test) в иерархии.
Я пытался:
ProcessBuilder createJarProcess2 = new ProcessBuilder("jar", "cMf", "test.jar","test");
p = createJarProcess2.start();
stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
// read any errors from the attempted command
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
p.waitFor();
System.out.println("create jar 2 " p.exitValue());
Но включает также имя каталога.
Спасибо
Комментарии:
1. Jar — это программа, написанная на Java, не так ли? Таким образом, должна быть возможность создать Jar на чистой Java, без вызова ProcessBuilder.
2. @пользователь неизвестен: На самом деле ‘Jar’ — это более точно переименованный Zip. Он более специализирован на определенных сжатиях и указании формата файла манифеста, но Jar не обязательно должен содержать классы (или манифест), чтобы быть действительным Jar. 1 за ваш второй пункт.
3. @Andrew: Я не оспариваю это, но меня беспокоит то, что вы можете получить доступ к java.util.jar.JarFile и JarEntry изначально из Java, без использования Processbuilder. Это независимо от содержимого файла jar. Это могут быть классы с манифестом. Возможно, это не так.
Ответ №1:
Временно изменяет каталоги на dir при обработке следующего аргумента inputfiles. Допустимы несколько наборов входных файлов в каталоге C.
Пример:
jar cMf test.jar -C Test .
Удачного кодирования.