A modern Java and JVM language decompiler focused on high-quality, clean, and accurate code output.
Vineflower is a modern decompiler for Java and JVM languages that converts compiled bytecode back into human-readable source code. It focuses on producing highly accurate and cleanly formatted output, supporting the latest Java features up to Java 21+. The project is a fork of the Fernflower decompiler, continuing its development with an emphasis on quality and usability.
Java developers, reverse engineers, and security researchers who need to analyze or recover source code from compiled JARs, class files, or other bytecode artifacts.
Developers choose Vineflower for its superior output quality, support for modern Java features, and faster multithreaded decompilation compared to other decompilers. Its accuracy and clean code generation make it ideal for serious code analysis and debugging tasks.
Modern Java decompiler aiming to be as accurate as possible, with an emphasis on output quality. Fork of the Fernflower decompiler.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Decompiles Java 21+ features like records, sealed classes, and pattern matching, ensuring compatibility with latest language updates as listed in the README.
Generates well-formatted, readable source code with automatic formatting, making decompiled code easier to analyze and debug.
Uses multiple threads for faster decompilation of large codebases, improving efficiency for reverse engineering tasks.
Can be run from command line, integrated as a library in build tools like Gradle, or used via an IntelliJ IDEA plugin, offering versatile usage options.
Requires Java 11 or higher (version 1.9+) or Java 17 (version 1.11+), which may force environment updates and limit compatibility with older systems.
Only has an official plugin for IntelliJ IDEA, leaving users of Eclipse or other IDEs without built-in integration and requiring manual setup.
Using from command line involves downloading JARs and managing arguments, which can be intimidating for non-technical users or quick tasks.