# JetBrains/fernflower

Decompiler from Java bytecode to Java, used in IntelliJ IDEA.

Repository: https://github.com/JetBrains/fernflower
Canonical: https://ross.abutalabs.com/products/fernflower
Homepage: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
Language: Java
License: Apache-2.0
License Family: permissive
Topics: java, decompiler, reverse-engineering
Last push: 2026-08-26T14:21:00+00:00

## Health v2 (maintenance only)
Score: 77/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 35, longevity 100
- inputs: {"age_days": 4352, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4371, forks 728 (observed 2026-08-28T04:08:46.741500+00:00)

## What it is
Fernflower is an analytical decompiler that converts Java bytecode (class, jar, zip files) back into readable Java source code. It is bundled with IntelliJ IDEA and can also be run standalone from the command line.

## Use cases
- decompile a jar file back to java source
- read source of class files when debugging in intellij
- recover lost source code from compiled bytecode
- analyze third-party library internals without source
- reverse engineer java bytecode for security research
- decompile obfuscated java classes from the command line

## When to choose
- you need to view or recover Java source from compiled class files
- you work in IntelliJ IDEA and want decompiled code during debugging or navigation
- you want a scriptable command-line decompiler with fine-grained options
- you need a mature, actively maintained Java decompiler

## When to avoid
- you need to decompile non-JVM languages or bytecode
- you want a GUI decompiler outside of IntelliJ IDEA
- you need to decompile heavily obfuscated code with perfect fidelity
- you target very old or experimental bytecode formats

## Facets
- artifact type: library
- maturity: maintenance
- function: reverse-engineering, parser, developer-tools, cli
- domain: reverse-engineering, developer-tools, programming-languages
- platform: jvm, cli, cross-platform
- tags: decompiler, java-bytecode, intellij-idea, static-analysis, jvm

## Member repositories
- JetBrains/fernflower (main) score 77

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:46.741500+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:21:22.016047+00:00, confidence not recorded.
  - readme: https://github.com/JetBrains/fernflower (fetched 2026-08-28T04:08:46.741500+00:00, sha a8e11186e953)
  - homepage: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine (fetched 2026-08-29T09:09:40.568559+00:00, sha 9926d52851a8)
- Data as of 2026-08-30T08:39:29.467469+00:00.
