2200 Star!功能强大的 Java 字节码编辑器!

【导语】:Recaf是一款功能十分强大的Java字节码编辑器,基于objectweb的ASM构建,可以更好地显示文件的属性,并为字节码编辑提供方便。

简介

Recaf是一个易于使用的现代的Java字节码编辑器,它抽象了Java程序的复杂性,自动处理栈帧和常量池的生成,它是一种辅助编辑工具,提供修改字节码的界面,可以提高工作效率。当然,使用这个工具之前,你需要对Java字节码结构有一定的了解。

项目地址:
https://github.com/Col-E/Recaf

下载安装

Recaf是使用Java编写的一个工具,其本质就是一个jar包,依赖Java环境,同时其UI使用JavaFX构建,所以使用前需先确保环境配置正确。

它的下载安装十分简单,可以选择下载源码导入IDE工具后自行编译,官方也提供了命令build,直接执行即可。最方便的还是直接下载已经编译好的jar包,小秋下载了2.17.0版本试用,得到目标jar包后,执行以下命令即可启动recaf:

java –jar recaf-2.17.0-J8-jar-with-dependencies.jar

启动后,可以在系统信息页面检测环境是否正确,红框中的值都为true:

简单使用

导入jar包,并随意打开任意一个反编译后的Java类:

右键编辑字节码:

可以添加JavaDoc或源码,在界面中看到相应效果,修改字节码后,相应的Java文件也会实时同步修改:

支持自定义配置,包括主题、语言、字体、快捷键等:

支持文件内容搜索、类搜索、引用变量搜索等:

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

限时发布!纯手打“RocketMQ笔记”

1JVM的内存区域布局java代码的执行步骤有三点java源码文件编译器字节码文件字节码文件JVM机器码机器码系统CPU执行JVM执行的字节码需要用类加载来载入;字节码文件可以来自本地文件,可以在网络上获取,也可以实时生成。就是说你可以跳过写java代码阶段,直接生成字节码交由JVM执行其中Jav

Python Challenge Level 18

初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00