У меня есть .class и .java файлы в архиве JAR. Есть ли способ извлечь из него только файлы .java? Я попробовал эту команду, но она не работает:JAR - извлечение определенных файлов
jar xf jar-file.jar *.java
У меня есть .class и .java файлы в архиве JAR. Есть ли способ извлечь из него только файлы .java? Я попробовал эту команду, но она не работает:JAR - извлечение определенных файлов
jar xf jar-file.jar *.java
Вы можете использовать unzip
команды, которая принимает групповые символы в своих аргументах (это не относится к команде jar
). Что-то вроде этого следует сделать трюк (отказ от ответственности: не тестировалось)
unzip youFile.jar "*.java"
Отлично! Это работает, спасибо :) – user3521479
От source:
Чтобы извлечь только определенные файлы из файла фляги, поставить их имена:
C:\Java> jar xf myFile.jar foo bar
Использование подстановочных знаков - это оболочка, и вы не должны ожидать ее работы, когда извлечение из файла JAR (что, как вы поняли, имеет место).
Что вы можете сделать, это предоставить список файлов, которые вы хотите извлечь, с помощью @
модификатора:
jar xf my.jar @myfiles.lst
где myfiles.lst
будет:
com/my/MyClass.java
com/my/MySecondClass.java
Этот файл может легко создаются с использованием творческого использования jar tvf
, awk
и желаемого рисунка экстракции. Я оставлю это как упражнение и/или другой вопрос SO :-)
Или вы можете использовать unzip
- файл JAR в основном представляет собой zip-файл.
Приветствие,
Хорошо, я знаю это, это в документации, но поддерживает ли jar какие-либо регулярные выражения? Я ничего не нашел:/ – user3521479
Там не должно быть каких-либо * .java файлы в баночку, только файлы классов. Сначала вы можете проверить содержимое банки:
jar tvf jar-file.jar
Почему бы вам не просто извлечь все файлы и удалить те, которые вам не нужны? – Strikeskids
Откуда этот JAR? Неправильная практика заключается в том, чтобы упаковать исходный код и файлы классов в одном JAR ... – Puce
Потому что это более уродливое и медленное решение. Там около 10000 файлов. – user3521479