Ответ 1
Вы можете использовать команду unzip
, которая принимает подстановочные знаки в своих аргументах (что не относится к команде jar
). Что-то вроде этого должно сделать трюк (отказ от ответственности: не проверено)
unzip youFile.jar "*.java"
У меня есть .class и .java файлы в архиве JAR. Есть ли способ извлечь из него только файлы .java? Я пробовал эту команду, но она не работает:
jar xf jar-file.jar *.java
Вы можете использовать команду unzip
, которая принимает подстановочные знаки в своих аргументах (что не относится к команде jar
). Что-то вроде этого должно сделать трюк (отказ от ответственности: не проверено)
unzip youFile.jar "*.java"
Из источника :
Чтобы извлечь только определенные файлы из файла jar, укажите их имена:
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 не должно быть никаких файлов *.java, а только файлов классов. Сначала вы можете проверить содержимое банки, выполнив:
jar tvf jar-file.jar