Extraer el código fuente del archivo .jar


172

¿Hay alguna manera de extraer el código fuente de un archivo ejecutable .jar (Java ME)?


3
Pero tenga en cuenta que hacer esto puede ser ilegal dependiendo de si posee los derechos de autor de la jarra, el país en el que vive y su propósito para hacerlo.
Richard

2
Si es de código abierto, obtenga la fuente del desarrollador. De lo contrario, "se apreciará cualquier cumplimiento con el EULA".
Andrew Thompson

Compruebe el descompilador Procyon. Descargue su jar para descompilar los archivos jar. He dado los pasos a continuación
nitin angadi

Respuestas:


146

Use JD GUI . Abra la aplicación, arrastre y suelte su archivo JAR.


66
¿hay alguna manera de obtener el código fuente de .jar sin JD GUI?
Zulqurnain Jutt

Uso de @ZulqurnainJutt como se menciona en la respuesta de @ elachancejar xf filename.jar
Arvind Sridharan

46

Puede extraer un archivo jar con el comando:

jar xf filename.jar

Referencias: documentación JAR de Oracle


19
Esto es equivalente a cambiar el nombre filename.jarde filename.jar.zipy luego sólo descomprimirlo.
Mathias Bynens

28
Esto no extrae el código fuente. Extrae el código fuente compilado.
0xcaff

55
@caffinatedmonkey extrae el código fuente cuando el jar contiene archivos java, por ejemplo, tarros con nombres que generalmente terminan en "-sources". De hecho, solo extrae archivos .class cuando el jar no contiene ningún archivo fuente java.
edwardmp

37

Creo que esto se puede hacer muy fácilmente. Siempre puede extraer los archivos de origen (archivos Java) de un archivo jar en un archivo zip.

Pasos para obtener fuentes de un archivo jar como zip:

  1. Descargue JAD desde http://techieme.in/resources-needed/ y guárdelo en cualquier
    ubicación de su sistema.
  2. Arrastre y suelte el frasco para el que desea las fuentes en el JAD. 3 JAD UI se abrirá con toda la estructura del paquete en formato de árbol.
  3. Haga clic en el menú Archivo y seleccione guardar fuentes jar.
  4. Guardará las fuentes como un zip con el mismo nombre que el jar.

Espero que esto ayude.

El enlace está inactivo debido a algún motivo, por lo que puede agregar el enlace desde donde puede descargar JDGUI


1
@Nitesh ... publicaré el enlace alojado en mi sitio web ... descárguelo desde allí
dharam

44
La versión en el enlace techieme funciona de maravilla, ¡gracias!
DerStrom8

29

Su JAR puede contener fuente y javadoc, en cuyo caso simplemente puede usar jar xf my.jarpara extraerlos.

De lo contrario, puede usar un descompilador como se menciona en la respuesta de adarshr:

Use JD GUI . Abra la aplicación, arrastre y suelte su archivo JAR.


21
Tenga en cuenta que los archivos .jar son en realidad archivos .zip y se pueden abrir con cualquier herramienta ZIP.
Chris Nava

11

Sé que es una vieja pregunta. Todavía pensé que ayudaría a alguien.

1) Ve a la carpeta de tu archivo jar.

2) cambie su extensión a .zip.

3) Ya está listo y puede extraerlo fácilmente haciendo doble clic en él.

Nota: probé esto en MAC, funciona. Esperemos que también funcione en Windows.


2
@JCodex, estoy haciendo un proyecto de investigación sobre la herramienta de análisis de opiniones "opinionfinder" y su jarra contiene archivos Java y de clase. entonces tu comentario no es 100% verdadero. Sé que generalmente contendría solo .class pero no en este caso al menos
wired00

2
Su solución solo extraerá archivos .class, no el código fuente.
Carlos Sá

Parece que JD-GUI es una herramienta multiplataforma que realmente descompila el código y muestra el código fuente de las clases en todos los paquetes. Lo probé y pude obtener el código fuente en un segundo en MacOS. Tengo Java 8 instalado. Puede obtenerlo en jd.benow.ca No estoy seguro si funciona para proyectos grandes.
Carlos Sá

1
necesita el código fuente que no se proporciona por la forma en que lo describió
chiragchavda.ks

3

Haga lo siguiente en su caja de Linux donde funciona Java (si le gusta la forma terminal de hacer las cosas)

cd ~
mkdir decompiled_code && cd decompiled_code
wget https://bitbucket.org/mstrobel/procyon/downloads/procyon-decompiler-0.5.36.jar
java -jar procyon-decompiler-0.5.36.jar /Path/to/your/jar -o .

NOTA : como comentó @Richard "esto puede ser ilegal dependiendo de si posee los derechos de autor de la jarra, el país en el que vive y su propósito para hacerlo".


Para un archivo de clase específico, puede hacer java -jar procyon-decompiler-0.5.36.jar package / of / the / java / class.class> className.java
nitin angadi

0

AndroChef Java Decompiler produce un código muy bueno que puede usar directamente en sus proyectos ...


-2

Las herramientas anteriores extraen el frasco. También hay ciertas otras herramientas y comandos para extraer el jar. Pero AFAIK no puede obtener el código de Java en caso de que el código haya sido ofuscado.


77
La mejor respuesta
fnc12

-6

suponga que su archivo JAR está en C: \ Documents and Settings \ mmeher \ Desktop \ jar y el nombre del archivo JAR es xx.jar, luego escriba los dos comandos a continuación en el símbolo del sistema:

1> cd C: \ Documents and Settings \ mmeher \ Desktop \ jar

2> jar xf xx.jar


-6

- Convierta el archivo .jar a .zip (en Windows simplemente cambie la extensión) - Descomprima la carpeta .zip - Obtendrá archivos completos .java


3
Como una pequeña nota sobre este método ... Es cierto que los archivos jar son archivos zip sofisticados. Sin embargo, descomprimir un jar probablemente producirá archivos * .class, es decir, archivos java "compilados". Es posible "descompilar" archivos de clase en archivos normales de Java. Esta funcionalidad está incluida en muchos IDEs
Daniel Hernández,

esto solo desbloqueará archivos de clase
Harshil
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.