Cómo descompilar a archivos java intellij idea


IDEA tiene una gran función incorporada-decompiler. Funciona muy bien.Puedo copiar el código fuente, pero no puedo encontrar la opción de extraer todas las clases java descompiladas a archivos java.
Este proyecto tiene un montón de clases y paquetes java, así que voy a ser a largo para copiar esto manualmente.
¿Alguien sabe cómo extraer a los archivos fuente de Java. Thx

Author: bkdaaqra, 2015-02-08

8 answers

Para usar el descompilador Java IntelliJ desde la línea de comandos para un paquete jar siga las instrucciones proporcionadas aquí: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine

 21
Author: nicordesigns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-08 17:30:01

A partir de agosto de 2017 y IntelliJ V2017.2, la respuesta aceptada ya no parece ser completamente precisa: no hay fernflower.jar para usar.

El archivo jar se llama java-decompiler.jar y no incluye un manifiesto principal... En su lugar, puede usar el siguiente comando (desde una instalación de Mac):

java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler

(obtendrá el comando Usage incorrecto, pero funciona).

 20
Author: yan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-05 16:09:35

Siga las instrucciones para IntelliJ JD plugin. O vea un extracto de las instrucciones a continuación.

java -jar fernflower.jar [<source>]+ <destination>

+ significa 1 o más veces
<source>: archivo o directorio con archivos a descompilar. Los directorios se escanean recursivamente. Las extensiones de archivo permitidas son class, zip y jar.
<destination>: directorio de destino

Ejemplo:

java -jar fernflower.jar -hdc=0 -dgs=1 -rsy=1 -lit=1 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\

Tenga en cuenta que si se pasa un ".jar "archivo para la fuente, se creará otro".archivo jar " en el destino, sin embargo, dentro de lo nuevo ".jar " archivo, los archivos serán .java en lugar de .archivos de clase(no explota el frasco).

 14
Author: naXa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-09 08:29:45

Puedes usar uno de estos (ambos pueden usarlos en línea o descargarlos, hay algo de información sobre cada uno de ellos) : http://www.javadecompilers.com /

La que IntelliJ IDEA utiliza es fernflower, pero no puede manejar cosas recientes - como interruptores de cadena/enumeración, genéricos (no probé este personalmente, solo leí sobre él), ... Acabo de probar cfr desde el sitio web anterior y el resultado fue el mismo que con el decompiler incorporado (excepto por el interruptor de enumeración que tenía en mi clase).

 3
Author: Bluexin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-25 12:49:00

El decompilador de IntelliJ IDEA no fue construido con este tipo de uso en mente. Solo está destinado a ayudar a los programadores a echar un vistazo al bytecode de las clases java que están desarrollando. Para descompilar muchos archivos de clase de los cuales no tiene código fuente, necesitará algún otro descompilador java, que está especializado para este trabajo, y lo más probable es que se ejecute de forma independiente. Si buscas en Google deberías encontrar un montón.

 2
Author: Mike Nakis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-08 00:10:18

Hace algún tiempo utilicé JAD (Java Decompiler) para lograr esto - no creo que el decompiler de IntelliJ se incorporara con la exportación en mente. Es más una herramienta para ayudar a buscar a través de las clases donde las fuentes no están disponibles.

JAD todavía está disponible para descargar, pero no creo que nadie lo mantenga más: http://varaneckas.com/jad /

Había numerosos complementos para él, a saber, Jadclipse (lo adivinaste, una forma de usar JAD en Eclipse-ver clases descompiladas cuando el código no esté disponible :)).

 2
Author: theadam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-08 00:31:21

Intenta

Https://github.com/fesh0r/fernflower

Descargar jar de

Http://files.minecraftforge.net/maven/net/minecraftforge/fernflower /

Orden:

java -jar fernflower.jar -hes=0 -hdc=0 C:\binary  C:\source

Coloque su archivo jar en la carpeta C:\binary y la fuente será extraída y embalada en un frasco dentro C:\source.

Disfrute!

 1
Author: Prasobh.K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-06 12:25:39

Uso JD-GUI para extraer todas las clases java descompiladas a archivos java.

 0
Author: tecdoc ukr net,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-18 17:15:28