构建产物在 recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar,不在仓库根目录;README 未说明所需 JDK 版本,构建前需自行确认;CLI 脚本自动化需额外编写脚本文件并通过 --script 传入
git clone https://github.com/Col-E/Recaf.git
gradlew buildREADME 未说明硬件要求,仅提及以 java -jar 方式运行,需自备 Java 运行环境
现代化 Java/Android 字节码编辑器,让你无需源码也能浏览、修改并导出编译后的应用
基于 JavaFX 的现代 Java 字节码编辑器,支持反编译、汇编与字节码修改,方便逆向分析和调试 JVM 程序。
核心能力
- 内置 CFR、Procyon、Fernflower 三种反编译器可切换
- 直接编辑反编译源码或使用字节码汇编器改类文件
- 提供常量、谓词、控制流等反混淆变换器并支持预览
- 按模式批量重命名混淆类与成员并可导出映射
- 通过脚本与 CLI 的 --headless 模式自动化分析流程
容易踩的坑
- 4.0.0-alpha4.0.0 Alpha / Preview最新正式版2025-08-31 · 2025-08-31 17:43 UTC
Recaf 4.X Preview
These are preview builds of Recaf built on the current
masterbranch onAugust 31st 2025July 29th 2026.Java 22+ is required
What is new in Recaf 4.X compared to 2.X / 3.X?
There are too many changes to list but some highlights include:
- New modern UI theme + nicer monospace font
- New tools for deobfuscating code
- Improved support for loading obfuscated inputs targeting common anti-reverse engineering techniques
- Improved dockable UI system with features comparable to what you would see in IntelliJ
- Improved assembly format for editing Java instructions
- Improved assembly UI, including control flow visualization, variable read/write visualization, and more
- Basic read-only Android support (Will be expanded upon in future releases)
Which file should I download?
We recommend most users grab the launcher as it gives you the means to easily grab new releases with a single click. You can find the launcher project here. Information on why a launcher exists can be found in the user documentation section under "Installing".
If you do not want the launcher, you can grab the independent release artifacts attached here, or build Recaf from source yourself. We do not officially have releases anywhere outside of GitHub. We are aware that some third parties will offer their own way to install Recaf such as via Brew,AUR, etc but insist you only use these if you trust them and don't care if you use very outdated builds.
Which file do I download if I want this specific build?
The independent releases
recaf-4x-alpha-<platform>.jarare run withjava -jar. The<platform>portion should match your operating system and architecture.- For Windows, just grab the file that says
win-86x64 - For Mac/Linux, grab the respective
macorlinuxjar that is suffixed with86x64oraarchdepending on your CPU architecture.
Why is this not marked as a
previewon github if these are previews?Because then they don't show up in the main page as the latest release, which massively limits their reach. I am really tired of people downloading a 5+ year old version of Recaf so this is why this is marked as an actual release.
This does not mean 4.0.0 is right around the corner, we still have a lot left to do.
- 2.21.142.21.42024-04-27 · 2024-04-27 09:59 UTC
查看更新说明
2.21.14 (2024-04-27)
👉 BIG BOLD ATTENTION GRABBING TEXT 👈
Important news
This update is primarily to remove the auto-updater from Recaf 2.X as the next release iterations are not compatible with the existing auto-updater schema. The last few prior updates announced that Recaf 3.X was in progress. We have since restructured significantly once more and will be going to 4.X.
For more details you can check out 4.X here:
Updated libraries
- ASM 9.2 --> 9.7
- CAFEDUDE 1.9.6 --> 2.0.1
- JavaParser 3.24.2 --> 3.25.9
- JPhantom 1.4.3 --> 1.4.4
- 2.21.132022-03-29 · 2022-03-29 08:10 UTC
查看更新说明
2.21.13 (2022-03-29)
Important news
The 3rd major version release of Recaf (3.X) is in a early-alpha state. You can check the progress here: Recaf 3X Issues & Feedback
For repository owners and maintainers of package managers, this will change the artifact release process. More information about this change will come out once the 3X project gets closer to an official release.
New Features
- Plugins can now specify custom language files (253be13)
- Keybind to increase/decrease font size (e2cbecc)
Bug Fixes
- 2.21.122022-02-01 · 2022-02-01 05:58 UTC
查看更新说明
2.21.12 (2022-02-01)
Important news
The 3rd major version release of Recaf (3.X) is in a early-alpha state. You can check the progress here: Recaf 3X Issues & Feedback
For repository owners and maintainers of package managers, this will change the artifact release process. More information about this change will come out once the 3X project gets closer to an official release.
Bug Fixes
- Renaming a class, then renaming its members does not yield correct aggregate mappings (9358cbf)
- 2.21.112022-01-08 · 2022-01-08 07:29 UTC
查看更新说明
2.21.11 (2022-01-08)
Important news
The 3rd major version release of Recaf (3.X) is in a early-alpha state. You can check the progress here: Recaf 3X Issues & Feedback
For repository owners and maintainers of package managers, this will change the artifact release process. More information about this change will come out once the 3X project gets closer to an official release.
Bug Fixes
- Fix update prompt not properly rendering all items in the changelog (7ee876d)
- Fix detection of minimum support version for javac (4a72119)
- Fix crash exporting jar with duplicate paths (7a0a8a0)
- Fix accidental removal of ZIP parsing fallbacks (d0cf108)
- Fix desktop browse breaking on Linux, now use platform specific open options (3212458)
- Improve phantom class generation performance by moving file IO to in-memory operations (1c855ec)
- Improve compiler performance by moving file based classpath to in-memory classpath (1c855ec)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Recaf


A versatile and easy to use Java and Android bytecode editor. Recaf makes working with compiled Java applications easier. Explore unfamiliar code, analyze obfuscated applications, modify classes without their original source, and export your changes, all through a familiar IDE-like interface.
Download
- Launcher
- Pulls snapshot releases from GitHub CI runs, ensuring you have the most up-to-date releases.
- Usage & instructions for the launcher can be found on the launcher repo.
- Snapshot releases
- See CI actions for release artifacts.
- Independent releases
Features
- Switch between multiple configurable Java decompilers: CFR, Procyon, Fernflower
- Each decompiler can be fully configured via the config menu. If you're lost, just use the config window's search bar and type in the name of the decompiler you want to tweak.
- Search for strings, constants, class references, methods, and bytecode instruction patterns.
- Navigate thorugh Java applications like you would with an IDE.
- Control + left click or press F3 to jump to referenced classes, fields, and methods.
- Left/Right + Alt to jump between recently visited locations.
- Control + G to quickly find classes, members, or file content in an opened application.
- Everything else is accessible via context-sensitive right click menus.
- Click on a class? Get shown operations for the class.
- Click on a method? Get shown operations for the method.
- Both Java and Android applications are treated the same.

Make simple edits by just plainly editing decompiled Java source code, save your changes, then export the modified application.
- Missing dependency / library code in the application JAR? Recaf can fill in the blanks for you by analyzing the existing code and generating library skeleton code. The compiler can't tell the difference.
- Encountering issues with decompilation quality making source edits too difficult? Use the bytecode assembler!

Recaf's bytecode assembler makes changing low level class files easy. Complex aspects of the file format are abstracted away from you. Helpful tools can assist you even if you're a total bytecode noob.
- Assembler features:
- Variable names used in place of variable slots, making code easier to read and reason through.
- Immediate feedback on syntax errors, improper usage of instructions, etc.
- Visualize control flow by clicking on a label to see where control-flow instructions lead to.
- Assembler tools:
- Analysis: See what values are on the stack and in local variables at any point in the method. Click a line and it updates to show what happens at that point in the code.
- Declared Variables: A table of all variables, how they are used, and single-click navigation to jump between those usages.
- Java to Bytecode: Write simple Java source code on the left hand side, see the equivalent Java bytecode on the right hand side. You can easily generate complex bytecode from source code, then copy and paste it into the assembler wherever you want.
- Snippets: Find yourself writing the same debug
printlncall all the time? Save it as a snippet and access it any time. Copy and paste ready debug prints are the lifeblood of any programmer desparately debugging some third party code whose authors went the way of the dinosaur.

-
Powerful deobfuscation tools:
- Generalized Java bytecode transformers for opaque constants, predicates, and more. Pick a set of transformers in the deobfuscation window, preview your changes, and apply to the application when you're satisfied with the results.
- Support for mass-renaming obfuscated classes and their members via pattern-driven mapping generators.
- Want more control over renaming? You can manually rename classes and their members too. You can even export the mappings to a variety of formats for use in other tools when you're done.
-
Silent backround measures:
- Specially crafted class files with the intent of crashing reverse engineering tools are automatically patched when opened in Recaf. If you want to control the level of detail for automated patches to be more or less thorough you can change the patch mode in the config.
- Specially crafted jar/zip files are read as the JVM does, bypassing sneaky tricks that can trick reverse engineering tools into showing the wrong data. Try comparing some sample jars to other tools and you can see how other tools get confused where Recaf does not.
- For scripts, see Scripts in the documentation.
- For CLI usage, see Running
- The gist, make the script then use
java -jar recaf.jar --input <app> --script <script.java> - Looking to automate workflows with AI? Use the CLI's
--headlessand the MCP plugin to give agents access to all of Recaf's capabilities.
A complete list of features can be found in the user guide.
Documentation
- User guide: Covers functionality, configuration, and usage.
- Developer guide: Covers architecture, scripting, plugins, and APIs.
- Discord: Community discussion, support, and hangout.
Development Setup
Clone the repository via git clone https://github.com/Col-E/Recaf.git
Open the project in an IDE or generate the build with gradle.
IDE:
- Import the project from the
build.gradlefile - Create a run configuration with the main class
software.coley.recaf.Main
Without IDE:
- Run
gradlew build- Output will be located at:
recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar
- Output will be located at: