Как Вы извлекаете JAR в файловой системе UNIX с единственной командой и определяете ее целевой каталог с помощью команды JAR?

Я рассматриваю структуру как для (если) A else B, так и для (if) -sese является специальным if-else , примерно . Это может помочь понять еще .

A и B выполняются не более одного раза, что аналогично структуре if-else.

for (if) может рассматриваться как специальное условие if, которое выполняет цикл для выполнения условия if. Как только условие , если выполнено, A и нарушают ; Остальное , Б.

46
задан Jonathan Leffler 13 July 2009 в 20:27
поделиться

4 ответа

Если у вашего jar-файла уже есть абсолютный путь, как показано, это особенно просто:

cd /where/you/want/it; jar xf /path/to/jarfile.jar

То есть, у вас есть оболочка, запущенная Python для изменения каталога, а затем запускает извлечение.

Если ваш файл jar еще не имеет абсолютного пути, вам необходимо преобразовать относительное имя в абсолютное (добавив к нему префикс пути к текущему каталогу), чтобы jar мог найти его после изменение каталога.

Единственные проблемы, о которых нужно беспокоиться, - это такие вещи, как пробелы в именах путей.

63
ответ дан 26 November 2019 в 20:10
поделиться

I don't think the jar tool supports this natively, but you can just unzip a JAR file with "unzip" and specify the output directory with that with the "-d" option, so something like:

$ unzip -d /home/foo/bar/baz /home/foo/bar/Portal.ear Binaries.war
59
ответ дан 26 November 2019 в 20:10
поделиться

Не могу. вы просто меняете рабочий каталог в скрипте Python, используя os.chdir (target) ? Я согласен, я не вижу никакого способа сделать это из самой команды jar.

Если вы не хотите постоянно менять каталог, сохраните текущий каталог (используя os.getcwd () ]) в переменной, а затем измените ее обратно.

Вы просто меняете рабочий каталог в скрипте Python, используя os.chdir (target) ? Я согласен, я не вижу никакого способа сделать это из самой команды jar.

Если вы не хотите постоянно менять каталог, сохраните текущий каталог (используя os.getcwd () ]) в переменной, а затем измените ее обратно.

Вы просто меняете рабочий каталог в скрипте Python, используя os.chdir (target) ? Я согласен, я не вижу никакого способа сделать это из самой команды jar.

Если вы не хотите постоянно менять каталог, сохраните текущий каталог (используя os.getcwd () ]) в переменной, а затем измените ее обратно.

1
ответ дан 26 November 2019 в 20:10
поделиться

Если это личный сценарий, а не тот, который вы планируете распространять, может быть проще написать для этого функцию оболочки:

function warextract { jar xf $1 $2 && mv $2 $3 }

, которую затем можно было бы вызывать из python, например итак:

warextract /home/foo/bar/Portal.ear Binaries.war /home/foo/bar/baz/

Если вам действительно нравится, вы можете использовать sed для анализа имени файла из пути, чтобы вы могли вызвать его с помощью

warextract /home/foo/bar/Portal.ear /home/foo/bar/baz/Binaries.war

. Я оставлю это в качестве упражнения для читателя , хотя.

Конечно, поскольку это сначала извлечет .war в текущий каталог, а затем переместит его, у него есть возможность перезаписать что-то с тем же именем, где вы находитесь.

Смена каталога, извлечение это, и cd-ing назад немного чище, но я все время использую такие маленькие однострочные функции оболочки, когда хочу уменьшить беспорядок в коде.

1
ответ дан 26 November 2019 в 20:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: