fernflower
cfr
fernflower | cfr | |
---|---|---|
4 | 3 | |
3,266 | 1,812 | |
- | - | |
7.2 | 0.0 | |
29 days ago | over 1 year ago | |
Java | Java | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fernflower
- read Minecraft source code
- Java 泛型程式設計的注意事項
-
New open source Java decompiler
Hello! Today I'm happy to announce the release of a project that me and my friends have been working on over the course of the last year, Quiltflower! Originally intended just for use with the QuiltMC toolchain with Minecraft, Quiltflower quickly expanded to be a general purpose java decompiler aiming to create code that is as accurate and clean as possible. If the name sounds familiar it's because Quiltflower is a fork of Fernflower, the (in)famous decompiler that was developed by Stiver, maintained by Jetbrains, and became the default decompiler in Intellij IDEA. Fernflower also quickly found its way into many other tools. After many frustrations with it myself with its decompiled code structuring and quality I decided to do something about it, and here we are! Over the past year, Quiltflower has added support for features such as modern string concatenation, a code formatter, sealed classes, pattern matching, switch expressions, and try-with-resources, and more. Quiltflower also focuses on the code quality of the decompiled output, and takes readability very seriously. We'd greatly appreciate it if you'd give it a try, with our Intellij Plugin or as a standalone jar. While it has come a long way it's still a work in progress, and feedback can be reported on our issue tracker.
-
Visually Edit Decompiled Class File?
You can decompile the classes into .java sourcecode using Fernflower and store that to disk, then use the Attach Sources option to add it to the binary dependency you're using. This allows you to edit the source freely for your reference while continuing to use the original binary.
cfr
-
scala 3 does not have :javap. Does anyone have any tips how to get around this.
By the way, I recommend using https://www.benf.org/other/cfr/ as a decompiler of classfiles when possible, it's significantly more readable than the javap output.
-
Any way to force a dependency jar to use jakarta instead of javax?
Next I'd try to use only the fat jar as dependency and pray that nothing breaks. If it does and is not trivial, you might have to decompile (cfr is excellent), fix, recompile and patch the jar.
-
New open source Java decompiler
I'd also like to thank the MinecraftForge Team for creating ForgeFlower, the fork that QuiltFlower was based on, and Lee Benfield for creating CFR and it's truly incredible test suite.
What are some alternatives?
JByteMod-Beta - Java bytecode editor
vineflower - Modern Java decompiler aiming to be as accurate as possible, with an emphasis on output quality. Fork of the Fernflower decompiler.
jadx - Dex to Java decompiler
ForgeFlower - Forge's modifications to FernFlower. Fixing various bugs/inconsistencies. Main Repo: https://github.com/MinecraftForge/FernFlower
cfr_tests - Test suite for CFR. (see docs for why it's a whole different repo!)
MCPConfig - Public facing repo for MCP SRG mappings.
MinecraftForge - Modifications to the Minecraft base files to assist in compatibility between mods. New Discord: https://discord.minecraftforge.net/
bytecode-viewer - A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)
Mixin - Mixin is a trait/mixin and bytecode weaving framework for Java using ASM