Descompilación de archivos jar (entorno IDEA)

ilustrar

Si desea descompilar algunos archivos jar, ya que mucha gente usa IDEA ahora, la forma más conveniente es usar el complemento en IDEA para descompilar.

Complemento IDEA

Puede usar el "descompilador de código de bytes de Java" en IDEA, que generalmente está integrado y se puede usar directamente. Encuentre la ubicación del complemento.

  • Java Bytecode Decompiler Ubicación: D:\DevTools\JetBrains\IntelliJ IDEA 2021.1\plugins\java-decompiler\lib\java-decompiler.jar

  • La ubicación del paquete jar que se va a descompilar: F:\javadecom\helloworld.jar

Abra la consola, ingrese el directorio del paquete jar que se va a descompilar y descompile el comando:

java -cp "D:/DevTools/JetBrains/IntelliJ IDEA 2021.1/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true F:/javadecom /holamundo.jar datos

ilustrar

  • org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler: es la clase de inicio del complemento.

  • data: es una carpeta debajo de la ruta del paquete jar que se va a descompilar, que debe crearse con anticipación, y el resultado descompilado se colocará en esta carpeta.

Ejecute el comando y se producirá un error en este momento, como se muestra en la siguiente figura:

Error de detalles:

F:\javadecom>java -cp "D:/DevTools/JetBrains/IntelliJ IDEA 2021.1/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true F:/javadecom/helloworld.jar data

Error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/jetbrains/java/decompiler/main/decompiler/ConsoleDecompiler has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Significa que el código compilado por JDK11 no se puede descompilar usando JDK8.

En este momento, debe descargar un JDK 11. Después de la descarga, puede especificar el uso de JDK 11 para la descompilación.

  • Ubicación de JDK11: D:\DevTools\Java\jdk-11.0.12\bin\java.exe

Especifique el comando de descompilación JDK11:

D:/DevTools/Java/jdk-11.0.12/bin/java.exe -cp "D:/DevTools/JetBrains/IntelliJ IDEA 2021.1/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true F:/javadecom/helloworld.jar data

Una vez completada la descompilación, los archivos jar descompilados se generarán en el directorio de datos.

Descomprima el archivo y será el código descompilado.

Supongo que te gusta

Origin blog.csdn.net/xsq123/article/details/125996990
Recomendado
Clasificación