无论是社区版 IDEA,还是专业版 IDEA,都自带了反编译插件 Java Bytecode Decompiler。
反编译的关键是 java-decompiler.jar,位于 IDEA 安装目录下的 /plugins/java-decompiler/lib/ 下。
其中:
[-<option>=<value>]*
中的 *
表示选项可有零个、一个或多个。所有选项可以参看源码。常见选项:
- log,日志级别:
-log=warn
(共有 4 个日志级别:TRACE、INFO、WARN、ERROR,默认是 INFO)。 - hes,Hide Empty Super invocation,隐藏空参的 super 调用。默认打开。
- hdc,Hide empty Default Constructor,隐藏空参的默认构造器。默认打开。
- dgs,Decompile Generic Signatures,反编译泛型签名。默认关闭。
- ren, Rename,重命名混淆后的代码。重命名规则:
(class|method|field)_<consecutive unique number>
。默认关闭。 - urc,配合选项 ren 使用,用于自定义重命名规则。
- mpm,单个方法最大处理时长,单位是秒。默认是 0,表示没限制。
示例一,反编译 .class 文件:
java -jar java-decompiler.jar -log=warn d:/my.class d:/decompiled
上述命令表示将文件 d:/my.class 进行反编译,生成 my.java,存放在目录 d:/decompiled。
示例二,反编译 .jar 文件:
java -jar java-decompiler.jar -log=warn d:/my.jar d:/decompiled
上述命令表示将文件 d:/my.jar 进行反编译,生成一个新的 my.jar,存放在目录 d:/decompiled。
虽然新的 my.jar 也是 .jar 后缀,但它里面的文件是 .java 格式,而非 .class 格式。
直接将新 my.jar 解压即可获得反编译后的源码。
示例三,反编译目录:
java -jar java-decompiler.jar -log=warn d:/my d:/decompiled
上述命令表示将目录 d:/my 进行反编译,生成一个新的 my 目录,存放在目录 d:/decompiled。
反编译 .jar 文件时,建议先解压成目录,然后反编译。
分类:
JAVA
, IntelliJ IDEA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2023-05-09 IDEA快速生成get、set等方法
2009-05-09 玩玩AJAX之使用ashx文件响应来自JQuery的JSON请求.
2009-05-09 asp.net+ajax + -Jquery 无刷新评论(留言)系统 v1.0 (漂亮验证码 ,载入等待状态)