Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Decompiler for VS Code

基于 dgileadi/vscode-java-decompiler 的社区维护分支,持续更新以支持现代 Java 版本。

Language Support for Java™ by Red Hat 扩展添加反编译能力,支持 CFR、Vineflower、Procyon 三种反编译引擎。

✨ 功能

  • 对无源码的 Java 类文件 Ctrl/Cmd + ClickGo to Definition 即可查看反编译代码
  • 支持 JDK 6 ~ 21+ class 文件反编译
  • 三引擎可选:CFR(现代)、Vineflower(推荐,Fernflower 继任者)、Procyon(遗留)
  • Unicode 字符默认直接显示(不转义为 \uXXXX
  • 支持各引擎的细粒度配置选项

📦 支持的反编译引擎

引擎 版本 状态 说明
Vineflower 1.12.0 ✅ 推荐 Fernflower 社区继任者,支持 Java 21+ 新特性
CFR 0.152 ✅ 活跃 现代 Java 反编译器,广泛使用
Procyon 0.6.0 ⚠️ 维护中 2019 年起未更新,不支持现代 Java 特性

v0.0.5 更新:Fernflower 已替换为 Vineflower,旧配置自动兼容无需修改。

📋 要求

🚀 快速开始

  1. 安装 Red Hat Java 扩展
  2. 安装本扩展
  3. 打开任何使用了无源码 JAR 的 Java 项目
  4. Ctrl/Cmd + Click 类名即可查看反编译代码

⚙️ 配置

切换反编译引擎

{
    "java.contentProvider.preferred": "vineflower"
}

可选值:vineflowercfrprocyon(为兼容旧配置,fernflower 也自动映射为 vineflower

引擎配置

{
    "java.decompiler.vineflower": {
        "din": true,
        "asc": false
    },
    "java.decompiler.cfr": {
        "hideutf": false,
        "innerclasses": true
    },
    "java.decompiler.procyon": {
        "unicodeOutputEnabled": true
    }
}

完整配置项请参考 VS Code 设置面板的自动补全。

🏗️ 项目架构

java-decompiler/
├── vscode-java-decompiler/          # VS Code 扩展(前端)
│   ├── package.json                 # 扩展清单 & 配置项
│   └── server/                      # 后端 JAR 包
│       ├── dg.jdt.ls.decompiler.common-0.0.5.jar
│       ├── dg.jdt.ls.decompiler.cfr-0.0.5.jar
│       ├── dg.jdt.ls.decompiler.vineflower-0.0.5.jar
│       └── dg.jdt.ls.decompiler.procyon-0.0.5.jar
│
└── dg.jdt.ls.decompiler/           # Java 后端(Eclipse 插件)
    ├── dg.jdt.ls.decompiler.common/  # 公共缓存基类
    ├── dg.jdt.ls.decompiler.cfr/     # CFR 引擎适配
    ├── dg.jdt.ls.decompiler.vineflower/ # Vineflower 引擎适配
    └── dg.jdt.ls.decompiler.procyon/ # Procyon 引擎适配

工作原理

flowchart LR
    A["VS Code<br/>Ctrl+Click 类名"] --> B["Red Hat Java LS<br/>请求反编译"]
    B --> C["dg.jdt.ls.decompiler<br/>Eclipse 插件"]
    C --> D1["CFR<br/>Vineflower<br/>Procyon"]
    D1 --> E["返回源码文本"]
    E --> F["VS Code 显示"]
Loading

后端是 Eclipse PDE 插件,通过 Tycho + Maven 构建,被 JDT Language Server 以 OSGi Bundle 形式加载。

🔨 构建

环境要求

  • JDK 21+
  • Maven 3.6+
  • Git

编译后端

cd dg.jdt.ls.decompiler
mvn clean install -DskipTests

打包 VS Code 扩展

cd vscode-java-decompiler
npx vsce package

产出 java-decompiler-x.x.x.vsix,可直接安装或发布。

📝 v0.0.5 更新记录(2026-07-22)

类别 变更
🚀 引擎升级 Fernflower →Vineflower 1.12.0(支持 Java 21+)
📐 平台升级 JavaSE-11 →JavaSE-21,Eclipse Target → 2024-03
🔧 构建升级 Tycho 2.5.0 →5.0.3,LSP4J 0.11 → 0.23
🌐 Unicode 三引擎默认不转义 Unicode 字符
🔄 兼容性 fernflower 配置键和 ID 自动映射到 Vineflower
📦 大小优化 精简 Target Platform,包体减小

🤝 致谢

📄 许可证

EPL-2.0

About

为 Language Support for Java™ by Red Hat 扩展添加反编译能力,支持 CFR、Vineflower、Procyon 三种反编译引擎。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages