{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/JetBrains/fernflower/blob/924b60f87d93743ab63b59454eec708e8309ef2a/README.md#L48-L92",
    "https://github.com/JetBrains/fernflower/blob/924b60f87d93743ab63b59454eec708e8309ef2a/build.gradle.kts",
    "https://github.com/JetBrains/fernflower/blob/924b60f87d93743ab63b59454eec708e8309ef2a/LICENSE.txt",
    "https://github.com/JetBrains/fernflower/blob/924b60f87d93743ab63b59454eec708e8309ef2a/NOTICE.txt",
    "https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/java/java-decompiler-engine/maven-metadata.xml"
  ],
  "category": "jvm",
  "description_en": "JetBrains' analytical decompiler that turns Java class files back into Java source; IntelliJ IDEA bundles it to show code when debugging or browsing class files. The standalone console decompiler takes class files, JARs, ZIPs or directories, can load library files with -e only as analysis context, and writes Java sources to an output directory. Options cover generic signatures, lambdas, inner classes, record and switch patterns, per-method time limits and renaming of ambiguous or obfuscated identifiers, optionally through a user-supplied renamer class.",
  "description_zh": "JetBrains 的分析型反编译器，可将 Java class 文件还原为 Java 源码；IntelliJ IDEA 内置了它，用于在调试或浏览 class 文件时显示代码。独立的控制台反编译器接受 class 文件、JAR、ZIP 或目录，可通过 -e 加载仅作为分析上下文的库文件，并将 Java 源码写入输出目录。选项涵盖泛型签名、lambda、内部类、记录模式与 switch 模式、单个方法的处理时限，以及对含糊或混淆标识符的重命名，也可由使用者提供的重命名类来实现。",
  "entry_url": "https://awesomerea.org/resources/fernflower/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/fernflower/",
  "evidence_url": "https://github.com/JetBrains/fernflower/blob/924b60f87d93743ab63b59454eec708e8309ef2a/README.md",
  "group": "tools",
  "id": "fernflower",
  "json_url": "https://awesomerea.org/resources/fernflower/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/fernflower/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/fernflower/index.md",
  "name": "Fernflower",
  "name_zh": "Fernflower Java 反编译器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "No GitHub releases: the README says releases are published in the IntelliJ repository, whose java-decompiler-engine metadata listed 262.10968.63 as the latest release at review. The README describes Fernflower as part of IntelliJ Community, which takes patches as pull requests, and bugs go to JetBrains' YouTrack (subsystem Java. Decompiler. Engine).",
    "The reviewed master commit's Gradle build (wrapper 9.1.0) compiles for Java 21 and produces fernflower.jar, or a fernflower start script with ./gradlew installDist; the README documents the java -jar fernflower.jar command line.",
    "Inputs are user-supplied class, JAR or ZIP files; libraries passed with -e inform analysis of class and method relationships but are not decompiled. The README says most options are aimed at professional reverse engineers. Output is reconstructed Java, not the original source.",
    "Apache-2.0 with a JetBrains NOTICE. The README credits Stiver as the original author and JetBrains as maintainer since 2014, with some ForgeFlower patches merged; Vineflower is a separately maintained fork."
  ],
  "requirements_zh": [
    "GitHub 上没有发布版本：README 称版本发布在 IntelliJ 仓库中，审阅时其 java-decompiler-engine 元数据列出的最新版本为 262.10968.63。README 称 Fernflower 属于 IntelliJ Community 项目，补丁需以拉取请求提交到该项目，问题则提交到 JetBrains YouTrack（子系统 Java. Decompiler. Engine）。",
    "所审阅 master 分支提交中的 Gradle 构建（wrapper 9.1.0）以 Java 21 为编译目标，可生成 fernflower.jar，或通过 ./gradlew installDist 生成 fernflower 启动脚本；README 介绍了 java -jar fernflower.jar 命令行用法。",
    "输入由使用者提供：class、JAR 或 ZIP 文件；通过 -e 传入的库文件用于分析类与方法之间的关系，但不会被反编译。README 称多数选项面向专业逆向工程人员。输出是重建的 Java 代码，并非原始源码。",
    "采用 Apache-2.0 许可，附 JetBrains 的 NOTICE。README 称 Stiver 为原作者，JetBrains 自 2014 年起负责维护，并合并了部分 ForgeFlower 补丁；Vineflower 是另行维护的分支。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/JetBrains/fernflower",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
