update see for files decompile create java jar extract archive

java - see - update manifest file in jar



JAR-extracción de archivos específicos (3)

Tengo archivos .class y .java en el archivo JAR. ¿Hay alguna forma de extraer solo archivos .java? He intentado este comando pero no funciona:

jar xf jar-file.jar *.java


De la source:

Para extraer solo ciertos archivos de un archivo jar, proporcione sus nombres de archivo:

C:/Java> jar xf myFile.jar foo bar

El uso de comodines es una cuestión de shell, y no debe esperar que funcione cuando se extrae de un archivo JAR (que, como se habrá dado cuenta, es el caso).

Lo que puede hacer es proporcionar una lista de los archivos que desea extraer, a través del modificador @ :

jar xf my.jar @myfiles.lst

donde myfiles.lst sería:

com/my/MyClass.java com/my/MySecondClass.java

Este archivo podría crearse fácilmente con el uso creativo de jar tvf , awk y su patrón de extracción deseado. Dejaré eso como un ejercicio y / u otra pregunta SO :-)

O puedes usar unzip , un archivo JAR es básicamente un archivo zip.

Aclamaciones,


No debería haber ningún archivo * .java en un jar, solo archivos de clase. Puedes verificar el contenido del jar primero ejecutando:

jar tvf jar-file.jar


Puede usar el comando unzip que acepta comodines en sus argumentos (que no es el caso del comando jar ). Algo como esto debería hacer el truco (descargo de responsabilidad: no probado)

unzip youFile.jar "*.java"