当前位置: 代码网 > it编程>游戏开发>ar > jar包或.class文件反编译问题及解决

jar包或.class文件反编译问题及解决

2026年09月08日 ar 我要评论
1、通过java-decompiler.jar进行反编译可以使用 idea 中的 “java bytecode decompiler”,该插件一般都内置了,可以直接使用,即ja

1、通过java-decompiler.jar进行反编译

可以使用 idea 中的 “java bytecode decompiler”,该插件一般都内置了,可以直接使用,即java-decompiler.jar,位置:

./jetbrains/intellij idea 2020.3.2/plugins/java-decompiler/lib/java-decompiler.jar

如何反编译jar包:

d:/jdk11/bin/java.exe -cp "d:/jetbrains/intellij idea 2020.3.2/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.consoledecompiler -dgs=true c:/users/admin/downloads/datastorage-5.1.jar datastorage
# d:/jdk11/bin/java.exe java路径,配置了path的可以直接使用java -cp,这样写的好处是可以指定jre版本
# "d:/jetbrains/intellij idea 2020.3.2/plugins/java-decompiler/lib/java-decompiler.jar" java-decompiler.jar的位置
# org.jetbrains.java.decompiler.main.decompiler.consoledecompiler 执行反编译的类
# -dgs=true
# c:/users/admin/downloads/datastorage-5.1.jar jar包或.class文件所在位置
# datastorage 默认是jar包或.class文件所在文件夹中的文件夹名称,要提前创建好,也可以给完整的路径

执行情况:

结果:

如果报错,说明编译java使用的jre版本比较高,需要安装这个版本的jre来执行编译命令

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/consoledec
ompiler 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)

class file version 与jre版本对应关系

49 = java 5
50 = java 6
51 = java 7
52 = java 8
53 = java 9
54 = java 10
55 = java 11
56 = java 12
57 = java 13
58 = java 14

2、jd-gui

其实本质上也是使用java-decompiler.jar这个,只是jar包的作者写了一个gui的操作页面可以更方便的反编译jar包或.class文件

源码位置: https://github.com/java-decompiler/jd-gui

在简介中可以找到jd-gui的下载位置

下载位置:http://java-decompiler.github.io

下载完后点击exe文件即可使用

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com