jar文件 反编译(IDEA环境)
说明
想要对一些 jar 文件进行反编译,由于现在 IDEA 使用的人比较多,比较方便的方法是,可以使用 IDEA 中的插件进行反编译。
IDEA 插件
可以使用 IDEA 中的 "Java Bytecode Decompiler",该插件一般都内置了,可以直接使用。找到该插件的位置。
Java Bytecode Decompiler 位置:D:\DevTools\JetBrains\IntelliJ IDEA 2021.1\plugins\java-decompiler\lib\java-decompiler.jar
要反编译的jar包位置:F:\javadecom\helloworld.jar
打开控制台,进入到要反编译的 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
说明
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler:是插件的启动类。
data:是在要反编译的 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 dataError: A JNI error has occurred, please check your installation and try againException 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.0at 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 进行反编译。
- JDK11 位置:D:\DevTools\Java\jdk-11.0.12\bin\java.exe
指定使用 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
反编译完成后,会在 data 目录中生成 jar 反编译的文件。
将该文件解压出来,就是反编译的代码。
jar文件 反编译(IDEA环境)相关推荐
- Android APK+Dex文件反编译及回编译工具(APKDB)v.1.9.2 正式版
http://idoog.me/?p=1913 [Android APK+Dex文件反编译及回编译工具 (APKDB)v.1.9.2 正式版] <APK+Dex文件反编译及回编译工具> 简 ...
- java jar反编译后保存_java根据jar包反编译后修改再打包回jar的做法
1. 得到一个待要修改的jar包 2. 我的环境是windows,然后解压这个jar包,得到一堆class文件,这时候就找到你需要的那个class文件 3. 我首先是使用jd-gui工具看一下这个cl ...
- 对Android APK文件反编译查看其源码
概述 作为android的开发者,相信你会有那么一刻,比如,对于手机中某一款App,有一项功能或者效果你蛮喜欢的,想学习一下它具体是怎么实现的.追求高一点的话,我想深究它这个App的项目架构,本着一探 ...
- Android APK+Dex文件反编译及回编译工具
本帖最后由 zhu891108 于 2012-8-3 11:00 编辑 大家好! 相信很多人玩智能手机,无论是塞班,安卓等等,不只是看重各种软件的功能,而更多的是看重系统的可定制性,可以自己动手DIY ...
- .so文件反编译_o泡果奶软件在哪下载 o泡果奶一份礼物魔性文件下载
o泡果奶病毒事件是怎么回事?最近很多高校学生都有被这个"O泡果奶"事情困扰着,安装之后会自动播放出关于"我要哦泡"的声音.之前也有类似的事情发生.那么大家知道o ...
- Jar包反编译后修改源码再编译
Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...
- java的class文件反编译工具jad的应用
java的class文件反编译工具jad的应用 JAD用法具体用法: http://www.kpdus.com/jad.html 官方最新版本,支持jdk1.6 Java下的一个简单易用的反编译工具 ...
- Java class 文件反编译工具JD-GUI下载安装使用教程(好用)
多少个日日夜夜上线系统.都会有明明我改成了最新代码咋没变呢这咋整,看看反编译后的文件吧.每次看完都哦的 豁然开朗. 简介: JD-GUI是java class反编译软件上线的时候很有用.开发这么多年找 ...
- Android APK+Dex文件反编译及回编译工具 v.1.8.0 测试版
可显示APK文件自身图标 _______________________________________________________________________________________ ...
最新文章
- 表表达式,Substring, CharIndex, 多行数据变同一行的用法
- Oracle 赋权和回收权限的生效时间
- Linux下启 停 oracle 以及em控制台
- 剑指Offer:包含main函数的栈(借助辅助栈)
- mysql8只从配置_mysql8的配置优化
- 第七章-NoSQL数据库
- WGAN-div:默默无闻的WGAN填坑者 | 附开源代码
- android import找不到文件夹,android 音乐播放器找不到源文件
- D3DXIntersectTri 求三角形与射线相交
- dnSpy反编译C#编译以后dll文件并调试
- h264js解码直播解码显示
- 笔记十三:python之类的继承实例(猜诗歌)
- 如何压缩word文档的大小?
- Pycharm新建项目,new environment 和 existing interpreter的区别
- Python爬取堆糖帅哥照片
- 【AutoHotkey】笔记本键盘没有Home键和End键的解决方案
- 静态网站全站搜索功能
- 虚拟机内存管理之内存分配器
- 【ESP 保姆级教程】疯狂Node.js服务器篇 ——案例:ESP8266 + MQ3酒精传感器 + NodeJs本地服务 + 文件存储数据
- android桌面壁纸显示不全屏显示,手机壁纸怎么全屏 全屏显示手机壁纸方法