Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • IDEA常用快捷键
  • IDEA常用插件之私有注解Private Notes
  • IDEA常用插件之类Jar包搜索Maven Search
  • IDEA常用插件之依赖关系查看Maven Helper
  • IDEA常用插件之代码扫描SonarLint
  • IDEA常用插件之查看每行代码提交信息GitToolBox
  • IDEA常用插件之代码规范检查
  • IDEA常用插件之快捷键提示Key Promoter X
  • IDEA常用插件之注解插件
  • IDEA常用插件之Builder
  • IDEA常用插件之翻译插件
  • IDEA常用插件之日志高亮显示
  • IDEA常用配置之代码自动格式化删除无用导入
  • IDEA常用配置之类Tab页多行显示
  • IDEA常用配置之双斜杠注释紧跟代码头
  • IDEA常用插件之Jar包反编译神器
    • 支持的功能
    • 下载安装
    • 编辑并构建 JAR
    • 修改字节码工具
    • 其他操作
    • 说明
  • IDEA中GIT相关操作
  • Mac下IDEA PyCharm无限试用方法
  • IDEA激活GitHubCopilot
  • IDEA远程开发
  • 《IDEA使用教程》
Jast-zsh
2024-09-18
目录

IDEA常用插件之Jar包反编译神器

# 告别繁琐反编译:IDEA中轻松反编译与修改Jar包

本文带你了解 JarEditor 插件的强大功能,它让你无语再用其他第三方工具,也无需解压 JAR 文件就能直接在IDEA中编辑其中的类和资源文件。还能用它轻松添加、删除或重命名 JAR 包里的文件。即使遇到混淆过的 JAR,JarEditor 也能通过 Javassist 工具搞定。

image-20240917093845126

# 支持的功能

JarEditor 提供了丰富的功能,尤其是对于开发者日常操作 JAR 文件时非常有用的特性:

  • 直接编辑 JAR 包内的类和资源文件:无需将 JAR 文件解压缩,支持对其中的类(.class 文件)和资源文件直接进行编辑。
  • 添加、删除或重命名 JAR 包内的文件和文件夹:简化了对 JAR 包内容的管理。
  • 搜索 JAR 包的内容:通过关键字快速定位 JAR 包中的文件或类。
  • JAR 内部文件的复制与粘贴:支持将 JAR 包中的文件复制到外部剪贴板,也支持从剪贴板粘贴文件到 JAR 包内。
  • 支持 SpringBoot JAR:可以处理 SpringBoot 打包的 JAR 文件。
  • 支持 Kotlin:除了 Java,JarEditor 也支持 Kotlin 的类和文件操作。
  • 导出 source JAR:可以直接将 JAR 文件的源码导出为 source JAR。
  • 字节码修改工具:通过集成的 Javassist 工具,支持直接修改 .class 文件的字节码。

# 下载安装

GitHub地址:https://github.com/Liubsyy/JarEditor

JetBrains Plugins地址:https://plugins.jetbrains.com/plugin/24397-jareditor

你可以通过搜索并安装 JarEditor 插件来开始使用。以下是安装完成后的界面:

image-20240917090258821

# 编辑并构建 JAR

安装完 JarEditor 后,右键点击项目中的 .class 文件,在反编译界面可以切换到 JarEditor 的 tab 页面,方便对 JAR 文件进行编辑。

对于外部 JAR 文件,可以通过 File -> Project Structure -> Libraries -> Add Library 来添加外部 JAR,并在项目视图中对其进行反编译和编辑操作。

image-20240917091216563

编辑完成后,可以点击Save(Compile)来编译并保存当前修改的类文件。完成编辑后,点击Build JAR,生成修改后的 JAR 文件。

此外,JarEditor 还支持修改 JAR 包中的资源文件(例如图片、配置文件等)。

以下是一个编辑和构建 JAR 的操作演示:

JarEditor_demo

# 修改字节码工具

当面对经过混淆处理的 JAR 文件时,反编译效果可能不理想。在这种情况下,JarEditor 提供了字节码修改工具来直接操作 .class 文件的字节码。

点击工具栏上的 Class bytes tool 图标,选择字节码修改工具:

  • Javassist:可以对类中的字段和方法进行增加、删除或修改。

以下是操作界面:

image-20240917091834061

# 其他操作

在项目视图中,右键点击 JAR 包内的文件,可以看到JarEditor -> New/Delete等操作,支持:

  • 在 JAR 包中添加文件或文件夹。
  • 删除 JAR 包中的文件或文件夹。
  • 重新命名 JAR 包内的文件或文件夹。
  • 将文件从 JAR 包导出。

以下是操作界面:

image-20240917091957465

# 说明

在使用 JarEditor 进行编译时,建议选择与当前 IDEA 版本匹配的 SDK 默认 JDK 版本。以下是不同版本 IDEA 对应的 JDK:

IDEA 版本 JDK
IDEA 2020.3 - IDEA 2022.1 JDK 11
IDEA 2022.2 - IDEA 2024.1 JDK 17
IDEA 2024.2 及更高版本 JDK 21

确保选择正确的 JDK 版本,以避免编译或运行时的兼容性问题。

上次更新: 2024/09/19, 21:00:02
IDEA常用配置之双斜杠注释紧跟代码头
IDEA中GIT相关操作

← IDEA常用配置之双斜杠注释紧跟代码头 IDEA中GIT相关操作→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式