明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 321万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

IDEA 自带的反编译工具

Posted on   且行且思  阅读(7674)  评论(0编辑  收藏  举报

无论是社区版 IDEA,还是专业版 IDEA,都自带了反编译插件 Java Bytecode Decompiler。

 

反编译的关键是 java-decompiler.jar,位于 IDEA 安装目录下的 /plugins/java-decompiler/lib/ 下。

其中:

[-<option>=<value>]* 中的 * 表示选项可有零个、一个或多个。所有选项可以参看源码。常见选项:

  1. log,日志级别:-log=warn(共有 4 个日志级别:TRACE、INFO、WARN、ERROR,默认是 INFO)。
  2. hes,Hide Empty Super invocation,隐藏空参的 super 调用。默认打开。
  3. hdc,Hide empty Default Constructor,隐藏空参的默认构造器。默认打开。
  4. dgs,Decompile Generic Signatures,反编译泛型签名。默认关闭。
  5. ren, Rename,重命名混淆后的代码。重命名规则:(class|method|field)_<consecutive unique number>。默认关闭。
  6. urc,配合选项 ren 使用,用于自定义重命名规则。
  7. 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 文件时,建议先解压成目录,然后反编译

相关博文:
阅读排行:
· 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 (漂亮验证码 ,载入等待状态)
点击右上角即可分享
微信分享提示