Extrayendo archivo .jar con línea de comando


115

Estoy tratando de extraer los archivos de un archivo .jar. ¿Cómo hago eso usando la línea de comando?

Estoy ejecutando Windows 7

Respuestas:


146

De los documentos :

Para extraer los archivos de un archivo jar, use x, como en:

C:\Java> jar xf myFile.jar

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

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

La carpeta donde jarestá probablemente no sea C:\Javapara usted, en mi partición de Windows es:

C:\Program Files (x86)\Java\jdk[some_version_here]\bin

A menos que la ubicación de jaresté en la variable de entorno de su ruta, tendrá que especificar la ruta completa / ejecutar el programa desde dentro de la carpeta.

EDITAR: Aquí hay otro artículo, específicamente centrado en la extracción de JAR: http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


Ok, cuando hago ese comando jar xf ..., aparece el error: 'jar' no se reconoce como un comando interno o externo, programa operable o archivo por lotes. ¿Cómo puedo solucionar esto?
Bobby C

1
@BobbyC: especifique la ruta completa jar.exeo ejecútelo desde dentro de la carpeta.
AusCBloke

Gracias, ¡todo está bien ahora!
Bobby C

2
java.io.IOException: META-INF: no se pudo crear el directorio en sun.tools.jar.Main.extractFile (Main.java:928) en sun.tools.jar.Main.extract (Main.java:852) en sun .tools.jar.Main.run (Main.java:242) en sun.tools.jar.Main.main (Main.java:1149) ¿cómo eliminar este error?
AnilPatel

1
@AnilPatel Arreglé esto ejecutando el símbolo del sistema como administrador (haga clic con el botón derecho en "ejecutar como administrador")
jessieloo

34

Tenga en cuenta que un archivo jar es un archivo Zip y cualquier herramienta Zip (como 7-Zip) puede mirar dentro del jar.


6
Por favor mire aquí, esto es lo que todos necesitan.
Ali

28

En Ubuntu:

unzip file.jar -d dir_name_where_extracting


1
¡Útil para sistemas que no tienen un jarcomando! Funciona sin problemas en CentOS 5.7
djthoms

8

Puede utilizar el siguiente comando: jar xf rt.jar

Donde Xsignifica extracción y fsería cualquier opción que indique que el archivo JAR del que se extraerán los archivos se especifica en la línea de comando, en lugar de a través de stdin.


2

Java tiene una clase específicamente para archivos zip y una aún más específica para archivos Jar.

java.util.jar.JarOutputStream
java.util.jar.JarInputStream

usando los que podría, en un comando de la consola, usando un escáner configurado en system.in

Scanner console = new Scanner(System.in);
String input = console.nextLine();

luego obtenga todos los componentes y escríbalos como un archivo.

JarEntry JE = null;
while((JE = getNextJarEntry()) != null)
{
    //do stuff with JE
}

También puede usar java.util.zip.ZipInputStream en su lugar, ya que al ver que un archivo JAR tiene el mismo formato que un archivo ZIP, ZipInputStream podrá manejar el archivo Jar, de hecho JarInputStream en realidad extiende ZipInputStream.

una alternativa también es en lugar de getNextJarEntry, para usar getNextEntry


2

jar xf myFile.jar
cambie myFile al nombre de su archivo,
esto guardará el contenido en la carpeta actual del archivo .jar
que debería hacer :)


0

Dado un archivo llamado Me.Jar:

  1. Ir a cmd
  2. Pulsa Enter
  3. Use el jarcomando de Java : estoy usando jdk1.8.0_31, así que escribiría

    C: \ Archivos de programa (x86) \ Java \ jdk1.8.0_31 \ bin \ jar xf me.jar

Eso debería extraer el archivo a la carpeta bin. Busque el archivo .class en mi caso, mi Me.jar contiene un Valentine.class

Escriba java Valentiney presione Entrar y se abrirá su archivo de mensaje.


-3

Para extraer el frasco en la carpeta especificada, use este comando a través del símbolo del sistema

C:\Java> jar xf myFile.jar -C "C:\tempfolder"

7
Esto no funciona. -Csolo se puede usar al crear archivos jar.
unwichtich

@unwichtich En ese caso, ¿hay alguna forma de especificar la carpeta de destino?
Línea

2
En los sistemas Linux se puede utilizar unzip file.jar -d dir_name_where_extracting, en Windows tienes que copiar / mover el JAR a la carpeta de destino y luego extraerlo allí ...
unwichtich
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.