Saltar al contenido

¿Cómo descompilar un archivo Jar completo?

Necesitamos tu ayuda para compartir nuestras crónicas en referencia a las ciencias informáticas.

Solución:

2009: JavaDecompiler puede hacer un buen trabajo con un jar: desde 0.2.5, se muestran todos los archivos, en archivos JAR.

http://java.decompiler.free.fr/sites/default/screenshots/screenshot1.png

Consulte también la pregunta “¿Cómo puedo “descompilar” archivos de clase Java?”.

Sin embargo, el JD-Eclipse no parece haber cambiado desde finales de 2009 (ver Cambios).
Por lo tanto, su integración con el último Eclipse (3.8, 4.2+) podría ser problemática.

JD-Core se mantiene activamente.

Ambos son el resultado del fantástico trabajo de (usuario de SO) emmanuel dupuy.


2018: Una opción más moderna, mencionada en los comentarios de David Kennedy Araujo:

JetBrains/intellij-community/plugins/java-decompiler/engine

Fernflower es el primer descompilador analítico que realmente funciona para Java y probablemente para un lenguaje de programación de alto nivel en general.

java -jar fernflower.jar [-

Consulte también Cómo descompilar en archivos java la idea de intellij para un comando que funcione con IntelliJ IDEA reciente.

En primer lugar, vale la pena recordar que todos los archivos de almacenamiento de Java (.jar/.war/etc…) son básicamente todo es fantasía.zip archivoscon algunos manifiestos y metadatos agregados.

En segundo lugar, para abordar este problema, personalmente uso varias herramientas que manejan este problema en todos los niveles:

  • Jad + Jadclipse mientras trabajaba en IDE para descompilar .class archivos
  • WinRARmi herramienta de compresión favorita admite de forma nativa archivos Java (nuevamente, consulte el primer párrafo).
  • Incomparablementemi herramienta de diferencias favorita, cuando se configura correctamente puede hacer comparaciones sobre la marcha entre cualquier archivo de almacenamiento, incluido jars. Vale la pena intentarlo.

La ventaja de todo lo anterior es que no necesito sostener ninguna otra herramienta externa que desordene mi entorno de trabajo. Todo lo que necesitaré de uno de esos archivos puede manejarse dentro de mi IDE o diferenciarse con otros archivos de forma nativa.

Si tiene un shell bash y jad:

JAR=(your jar file name)
unzip -d $JAR.tmp $JAR
pushd $JAR.tmp
for f in `find . -name '*.class'`; do
    jad -d $(dirname $f) -s java -lnc $f
done
popd

Puede que esté un poquito fuera de lugar con eso, pero debería funcionar más o menos como se anuncia. Deberías terminar con $JAR.tmp que contiene sus archivos descompilados.

Recuerda algo, que tienes concesión de decir si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *