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 :)).
Para usar el descompilador Java IntelliJ desde la línea de comandos para un paquete jar, siga las instrucciones que se proporcionan aquí: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
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).
Tratar
https://github.com/fesh0r/fernflower
Descargar jar desde
http://files.minecraftforge.net/maven/net/minecraftforge/fernflower/
Comando:
java -jar fernflower.jar -hes=0 -hdc=0 C:/binary C:/source
Coloque su archivo jar en la carpeta C: / binary y la fuente se extraerá y empaquetará en un jar dentro de C: / source.
¡Disfrutar!
Yo uso JD-GUI para extraer todas las clases java descompiladas a archivos java.