当前位置: 主页 > JAVA语言

jar反编译成java项目-java项目有哪些商用的jar包

发布时间:2023-05-04 10:18   浏览次数:次   作者:佚名

说明

想要对一些 jar 文件进行反编译,由于现在 IDEA 使用的人比较多,比较方便的方法是,可以使用 IDEA 中的插件进行反编译。

IDEA 插件

可以使用 IDEA 中的 "Java Bytecode Decompiler",该插件一般都内置了jar反编译成java项目,可以直接使用。找到该插件的位置。

jar反编译成java项目_java项目打jar包_java项目有哪些商用的jar包

打开控制台jar反编译成java项目,进入到要反编译的 jar 包的目录中,反编译命令:

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

说明

java项目有哪些商用的jar包_java项目打jar包_jar反编译成java项目

执行命令,此时出现一个错误,如下图所示:

java项目有哪些商用的jar包_java项目打jar包_jar反编译成java项目

错误详细信息:

jar反编译成java项目_java项目有哪些商用的jar包_java项目打jar包

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)

意思是 JDK11 编译的代码,无法使用 JDK8 反编译。

此时需要下载一个 JDK11,下载好后,可以指定使用 JDK11 进行反编译。

jar反编译成java项目_java项目打jar包_java项目有哪些商用的jar包

指定使用 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

java项目有哪些商用的jar包_jar反编译成java项目_java项目打jar包

jar反编译成java项目_java项目打jar包_java项目有哪些商用的jar包

反编译完成后,会在 data 目录中生成 jar 反编译的文件。

jar反编译成java项目_java项目有哪些商用的jar包_java项目打jar包

将该文件解压出来,就是反编译的代码。