Fernflower Java Decompiler

github.com

134 points by bartekpacia 6 days ago


stevoski - 3 days ago

The story behind the Fernflower Java decompiler is here: https://blog.jetbrains.com/idea/2024/11/in-memory-of-stiver/

brap - 3 days ago

I know you probably don’t want an LLM in your decompiler, but assigning meaningful names could be a good task for an LLM.

asplake - 3 days ago

> Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general.

That really deserves a link. What is an “analytical” decompiler?

nneonneo - 3 days ago

jadx (https://github.com/skylot/jadx) is similar, but for Android Java (Dalvik bytecode). I use it extensively and it works very well.

Over in .NET land, dnSpy (https://github.com/dnSpyEx/dnSpy) works very well, even on many obfuscated binaries.

userbinator - 3 days ago

The correct name is Fernflower, not FernFlower.

I found this amusing, from a Java perspective. The 3-character command-line options are also very "not Java-ish". However, since this one is also written in Java, a good test is if it can decompile itself perfectly and the result recompiled to a matching binary; much like how bootstrapping a compiler involves compiling itself and checking for the existence of the fixed-point.

krackers - 3 days ago

Is there a standalone gui version similar to jd-gui?

mudkipdev - 3 days ago

https://github.com/Vineflower/vineflower

hunterpayne - 3 days ago

I'm using this decompiler in my project right now. Its the best of the bunch and Jetbrains actively maintains it with good support.

p0w3n3d - 3 days ago

Is it only me or fernflower does not put the code in the correct lines, and the debugging fails to navigate over the code in the IntelliJ IDEA?

nunobrito - 3 days ago

Can the decompiled result be compiled again?

- 3 days ago
[deleted]
- 3 days ago
[deleted]
BinaryIgor - 3 days ago

...written in Java! Recursion going strong :)

techlatest_net - 3 days ago

[dead]