Menu

Tree [c428c1] master /
 History

HTTPS access


File Date Author Commit
 .github 6 days ago nbauma109 nbauma109 [9a001f] Update refactoring action to version 4
 crt 2026-01-20 nbauma109 nbauma109 [6990c1] Delete crt/_.nuxeo.org.crt
 doc 2017-09-01 Pascal Bihler Pascal Bihler [e8e428] Renamed Plugin to "Enhanced Class Decompiler"
 io.github.nbauma109.decompiler 5 days ago nbauma109 nbauma109 [c428c1] Apply Eclipse cleanup refactoring (#336)
 io.github.nbauma109.decompiler.assembly 5 days ago GitHub Action GitHub Action [a8ba42] [update version] 2025.12.9 -> 2025.12.10
 io.github.nbauma109.decompiler.feature 5 days ago GitHub Action GitHub Action [a8ba42] [update version] 2025.12.9 -> 2025.12.10
 io.github.nbauma109.decompiler.source.attach 5 days ago GitHub Action GitHub Action [a8ba42] [update version] 2025.12.9 -> 2025.12.10
 io.github.nbauma109.decompiler.source.attach.tests 5 days ago nbauma109 nbauma109 [c428c1] Apply Eclipse cleanup refactoring (#336)
 io.github.nbauma109.decompiler.source.feature 5 days ago GitHub Action GitHub Action [a8ba42] [update version] 2025.12.9 -> 2025.12.10
 io.github.nbauma109.decompiler.tests 5 days ago nbauma109 nbauma109 [dfe235] Update decompiler version in error message
 .gitattributes 2021-05-29 Jan S Jan S [cfc1e5] v3.2.2
 .gitignore 2025-10-26 nbauma109 nbauma109 [594768] remove .classpath/.project from repository and ...
 .typos.toml 2025-11-22 nbauma109 nbauma109 [0ef59c] Add spellcheck workflow for automated typo fixes
 LICENSE 2017-08-29 Pascal Bihler Pascal Bihler [11a469] Restored proper README and added missing LICENS...
 README.md 2026-02-09 nbauma109 nbauma109 [8cfbf1] Add JAVACC parser reference in README
 RELEASE.md 2026-01-26 nbauma109 nbauma109 [f0d539] Change feature IDs and packages
 _config.yml 2017-09-01 Pascal Bihler Pascal Bihler [4325be] Set theme jekyll-theme-hacker
 build.bat 2026-01-26 nbauma109 nbauma109 [25475a] build.bat: -UseBasicParsing
 build.sh 2024-05-09 nbauma109 nbauma109 [ff691d] use latest maven version
 ecd.cer 2023-05-01 Jan S Jan S [bd23a7] Ecd certificate added to readme/web site
 install_certs.bat 2025-10-31 nbauma109 nbauma109 [b07273] source attach - remove nuxeo, improve NexusSour...
 jitci-build.sh 5 days ago nbauma109 nbauma109 [228c91] Update JAVA_HOME to use sdkman path
 jitci-init.sh 5 days ago nbauma109 nbauma109 [559dc5] Configure JAVA_HOME and update PATH in jitci-in...
 jitci-publish.sh 5 days ago nbauma109 nbauma109 [66a6f5] Update JAVA_HOME to use SDKMAN path
 jitpack.yml 5 days ago nbauma109 nbauma109 [55aca4] Refactor Java installation in jitpack.yml
 pom.xml 5 days ago GitHub Action GitHub Action [a8ba42] [update version] 2025.12.9 -> 2025.12.10
 site.xml 2026-01-26 nbauma109 nbauma109 [f0d539] Change feature IDs and packages
 update-eclipse-p2.sh 2025-10-03 nbauma109 nbauma109 [dc99bc] Update update-eclipse-p2.sh
 update-version.sh 2024-05-09 nbauma109 nbauma109 [ff691d] use latest maven version

Read Me

Dependabot updates


CodeQL
Update version
Github Release
Coverage Status

Downloads from Github releases :

Github Downloads (all releases)
Github Downloads (latest release)

Downloads from Jitpack :

Jitpack Downloads
Jitpack Downloads


Download from Jitpack

Downloads from Eclipse Marketplace :

Eclipse Marketplace
Eclipse Marketplace downloads
Eclipse Marketplace monthly downloads
Eclipse Marketplace favorites
Eclipse Marketplace last update


Drag to your running Eclipse workspace to install

ECD++ - Fork of Enhanced Class Decompiler (ECD)

ECD++ integrates multiple decompilers provided by transformer-api :

  • Fernflower
  • Vineflower (fork of Fernflower)
  • Procyon
  • CFR
  • JD-Core V0 and V1
  • JADX

It also allows Java developers to debug class files without source code directly. Contrary to original ECD, it uses jd-util's JAVACC parser to parse decompiled code into its own model and its code presentation technical stack to realign code. It also integrates with the eclipse class editor, m2e plugin, supports Javadoc, reference search, library source attaching, and the syntax of JDK8 lambda expression.

image

Description

Enhanced Class Decompiler is a plug-in for the Eclipse platform. It integrates multiple decompilers seamlessly with Eclipse, allows you to display all the Java sources during your debugging process, even if you do not have them all, and you can debug these class files without source code directly.

Why a fork?

  • Compatibility with latest version of Eclipse over backward compatibility : upstream project aims at supporting all versions of Eclipse which is not maintainable from my point of view (2b13e85, b518dd3, f2b6022, 8538745, 8b47e95)
  • Usage of forked versions of decompilers : I need this freedom to bring bug fixes as some of the decompilers are not maintained anymore, or rarely maintained (see also this Why a fork ? section)
  • Source attach plugin comes with some enhancements (see below) but it was removed in upstream project (#103, 5a9a574)
  • Broken functions "Show Byte Code" and "Show Disassembler" are removed (bytecode is available natively in Eclipse in menu Window -> Show View -> Bytecode) but still present in upstream project
  • Some significant refactorings in upstream project made rebasing next to impossible not only because of conflicts but also because of the risk of regression (e3d0e4e, 94a317a, 6c3710c)
  • The forked project has its own governance, major changes (such as introduction of transformer-api), its own release pace

Why is this plug-in "enhanced"?

This is an ad-free fork of the Eclipse Decompiler Plugin. So we enhanced it by removing all code which might compromise your privacy or security (to the best of our knowledge).

How to install Enhanced Class Decompiler?

If you have currently the "Eclipse" Class Decompiler installed, it is recommended to uninstall that plug-in first and remove the corresponding update site from your Eclipse installation.

Use one of the following options to install:

Install with Eclipse Marketplace

In Eclipse, click on "Help > Eclipse Marketplace...", search and install ecd++

Install with update site URL

  1. Launch Eclipse,
  2. Click on "Help > Install New Software...",
  3. Use the update site URL https://nbauma109.github.io/ecd/updates/latest/
  4. Check the components to install,
  5. Click on "Next" and "Finish" buttons.
  6. A warning dialog windows appear because plug-in is not signed. Click on "Install anyway" button.

Drag and Drop installation:

  1. Launch Eclipse,
  2. Click on "Help > Install New Software...",
  3. Drag and Drop enhanced-class-decompiler-x.y.z.zip
  4. Check the components to install,
  5. Click on "Next" and "Finish" buttons.
  6. A warning dialog windows appear because plug-in is not signed. Click on "Install anyway" button.

/!\ Drag and Drop is blocked in some corporate contexts. In this case, in "Help > Install New Software...", click "Add.." and then "Archive.." to select enhanced-class-decompiler-x.y.z.zip

How to check the file associations?

  1. Click on "Window > Preferences > General > Editors > File Associations"
  2. "*.class" : "Class Decompiler Viewer" is selected by default.
  3. "*.class without source" : "Class Decompiler Viewer" is selected by default.

How to configure Enhanced Class Decompiler?

  1. Click on "Window > Preferences > Java > Decompiler"

Source attach:

You may configure a private Nexus repository with credentials (user/password) to download and attach sources automatically :

image

You may select from a list of available public repositories :

image

You may use this option "Wait for sources to be downloaded before trying to decompile" to avoid decompiling code for which you have sources.

image

Use this icon to switch decompiler while a class file is still open. Once a file is closed and re-opened, the source is cached, it is no more possible to switch decompiler.

image

How to uninstall Enhanced Class Decompiler?

  1. Click on "Help > About Eclipse > Installation Details > Installation Software",
  2. Select "Enhanced Class Decompiler",
  3. Click on "Uninstall...".

How to build from source?

Requirement: JDK 21 (make sure JAVA_HOME environment variable points to an appropriate JDK)

If you want to test the latest features of this plugin, you have to build it from source. For this, proceed as following:

  1. git clone https://github.com/nbauma109/ecd
  2. build with ./build.sh on Linux or build.bat on Windows

If you want to use Eclipse and help developing, continue like this:

  1. Install Eclipse for RCP and RAP Developers
  2. Import all projects into Eclipse by selecting File > Import > General > Existing Projects into Workspace > Next and enter the parent of the cloned directory as "root directory".

Licenses

The main plugin is licensed under GPL 3, the other feature plugins is licensed under the Eclipse Public License v1.0

Code partially based on:

Used libraries:

Contributors

  • Chen Chao (cnfree2000@hotmail.com) - initial API and implementation
  • Robert Zenz
  • Pascal Bihler
  • Nick Lombard
  • Jan Peter Stotz
  • Nicolas Baumann (@nbauma109)
MongoDB Logo MongoDB