txt texto sobreescribir por modificar manejo linea leer ejemplos como clase archivos archivo abrir java intellij-idea java-8 decompiling

texto - modificar archivos txt en java



Cómo descompilar archivos java. (8)

IDEA tiene una gran característica incorporada - descompilador. 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 una gran cantidad de clases y paquetes java, por lo que tendré mucho tiempo para copiar esto manualmente.
¿Alguien sabe cómo extraer a los archivos de origen Java. Gracias


A partir de agosto de 2017 e IntelliJ V2017.2, la respuesta aceptada ya no parece ser del todo 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 de uso incorrecto, pero funciona).


El descompilador de IntelliJ IDEA no fue construido teniendo en cuenta este tipo de uso. Solo está destinado a ayudar a los programadores a echar un vistazo al código de bytes de las clases Java que están desarrollando. Para descompilar muchos archivos de clase de los que 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.


Hace algún tiempo utilicé JAD (JAva Decompiler) para lograr esto. No creo que el descompilador de IntelliJ se haya incorporado con la exportación en mente. Es más bien una herramienta para ayudar a examinar 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/

Hubo numerosos complementos para él, a saber, Jadclipse (lo adivinó, una forma de usar JAD en Eclipse; vea las clases descompiladas donde el código no está disponible :)).



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

La única que utiliza IntelliJ IDEA es fernflower, pero no puede manejar cosas recientes, como interruptores String / Enum, genéricos (no probé esto personalmente, solo lo leí), ... Acabo de probar CFR en el sitio web anterior. y el resultado fue el mismo que con el descompilador incorporado (a excepción del interruptor Enum que tenía en mi clase).


Siga las instrucciones para el https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine . 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 para ser descompilados. Los directorios son escaneados 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 le pasa un archivo ".jar" para la fuente, creará otro archivo ".jar" en el destino; sin embargo, dentro del nuevo archivo ".jar", los archivos serán .java en lugar de .java. Archivos de clase (no explota el jar).



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