Enhanced Class Decompiler
Enhanced Class Decompiler integrates JD, FernFlower, Vineflower, CFR, Procyon seamlessly with Eclipse and allows Java developers to debug class files without source code directly. It also integrates with the eclipse class editor, m2e plugin, supports Javadoc, reference search, library source attaching, byte code view and the syntax of JDK8 lambda expression.
Description
Enhanced Class Decompiler is a plug-in for the Eclipse platform. It integrates JD, FernFlower, Vineflower, CFR, Procyon 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 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).
Supported Eclipse Versions
Enhanced Class Decompiler requires at least Eclipse 4.8 (Photon) or newer.
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.
- Launch Eclipse,
- Click on “Help > Install New Software…“,
- Click on button “Add…“ to add an new repository,
- Enter name as “Enhanced Class Decompiler Update Site” and enter location as “https://ecd-plugin.github.io/update“, then click on button “OK”,
- Check “Enhanced Class Decompiler”,
- Next, next, next… and restart.
How to check the file associations?
- Click on “Window > Preferences > General > Editors > File Associations”
- “*.class” : “Class Decompiler Viewer” is selected by default.
- “*.class without source” : “Class Decompiler Viewer” is selected by default.
How to configure Enhanced Class Decompiler?
- Click on “Window > Preferences > Java > Decompiler”
How to uninstall Enhanced Class Decompiler?
- Click on “Help > About Eclipse > Installation Details > Installation Software”,
- Select “Enhanced Class Decompiler”,
- Click on “Uninstall…“.
How to build from source?
Requiremnent: JDK 17 (make sure JAVA_HOME
environment variable points to an JDK 17)
If you want to test the latest features of this plugin, you have to build it from source. For this, proceed as following:
git clone https://github.com/ecd-plugin/ecd
- Run
cd ecd
- Run
mvn clean package
If you want to use Eclipse and help developing, continue like this:
- Install Eclipse for RCP and RAP Developers
- 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”.
- Open the org.sf.feeling.decompiler.updatesite project in the Package Explorer
- Open the file site.xml within the project
- Press “Build All”
- Copy the jar files generated in the build/features and build/plugins folder of the project into the correspondent folders of your normal Eclipse installation.
Plugin Signature
Since version 3.3.0 ECD is signed by a self-signed 4096 bit RSA key:
- Subject:
CN=ECD Software Distribution,OU=ECD,O=ECD
- SHA-1 fingerprint: 2D DB EE 7E 07 32 EB 0D 7C F2 FF C6 68 A0 C4 B8 B9 58 40 29
- SHA-256 fingerprint: 8A 68 55 D3 91 B7 6F 95 DA D1 1E DF 1C 38 8D 38 F1 8A 0C A2 97 E5 12 85 DD 5B 05 9C C3 21 1B D4
- Certificate file: ecd.cer
Eclipse Photon to Eclipse 2021-03
Due to a signature bug in all Eclipse versions up to (including) Eclipse 2021-03, the signed releases of Enhanced Class Decompiler (ECD) 3.4.1 and newer can no longer be used. Please download the latest unsigned repository from the ECD releases and install it manually in Eclipse.
This affects the release version published on https://ecd-plugin.github.io/update/ and also the version installable via Eclipse Marketplace as it uses this update site.
Changelog
- Version 3.5.1
- Use AST to remove block comments
- For newer Eclipse versions use methods to get the latest supported Java version (required for Eclipse 2024-06)
- Version 3.5.0
- Moved FernFlower into own plugin/feature
- Quiltflower plugin and feature removed
- Vineflower plugin and feature added (replaces Quiltflower)
- Removed “Source” (source.attach) plugin and feature
- Updated build environment to use Java 17
- Version 3.4.0
- Updated Embedded Decompilers
- Fernflower updated to 232.10203.10
- Updated Embedded Decompilers
- Version 3.3.0
- ECD releases are now signed with a self-signed certificate
- Removed Jad decompiler (decompiler was released 2001)
- Quiltflower plugin and feature added
- Updated Embedded Decompilers
- CFR to version 0.152 (JDK 14 support)
- Procyon to version 0.6.0
- Version 3.2.2
- Fixed some inconsistencies regarding version numbers and the update site
- Upgraded some service URL to HTTPS
- Version 3.2.1
- Updated Embedded Decompilers
- CFR to version 0.15.1 (JDK 14 support)
- Procyon to version 0.5.36
- Updated Embedded Decompilers
- Version 3.2.0
- Updated Embedded Decompilers
- JD-Core to version 1.1.3 (JDK 12 support)
- Updated Embedded Decompilers
- Version 3.1.1
- #44 Fixed that setting breakpoints might not work.
- #52 Fixed that hyperlinks might have oddly.
- Version 3.1.0
- Updated Embedded Decompilers
- CFR to version 0_130
- Verified and updated embedded decompilers
- Fixed that activating a tab with a decompiled source would reset the selected line location
- Fixed and tested compatibility with Eclipse Photon
- Tested compatibility with JDK11.
- Updated Embedded Decompilers
- Version 3.0.0
- Removed adware code fragments
- Removed self-update feature (Eclipse handles updates fine)
- Removed extra-header in code (Issue upstream#2)
- Display information about class being decompiled in editor title (Issue #3)
- Made plug-in work with Java9 BETA JDT core
Licenses
The main plugin and the org.sf.feeling.decompiler.jd project are licensed under GPL 3, the other feature plugins are licensed under the Eclipse Public License v1.0
Code partially based on:
- JD-Eclipse: Copyright Emmanuel Dupuy, GPL 3
- Java Source Attacher: Copyright Thai Ha, Apache License V2.0
Used libraries:
- Dr. Garbage Tools: Copyright (c) Dr. Garbage Ltd. & Co KG, Apache License V2.0
- Apache commons: Copyright (c) Apache Software Foundation, Apache License V2.0
- Fernflower: Copyright (c) JetBrains, Apache License V2.0
- Minimal JSON: Copyright (c) 2013, 2014 EclipseSource, MIT License
- CFR: Copyright Leee Benfield, MIT License
- Procyon: Copyright Mike Strobel, Apache License V2.0
- Netbeans CVSClient: Copyright (c) NetBeans Community, Eclipse Public License v1.0 and Apache License V2.0
- Maven SCM: Copyright (c) Apache Software Foundation, Apache License V2.0
- Nexus Indexer: Apache License V2.0
- Nexus Restlet1x Model: Eclipse Public License v1.0
- Plexus Utils: Copyright The Codehaus Foundation, Apache License V2.0
- JD-Core: Copyright Emmanuel Dupuy, GPL 3
- Vineflower: Apache License V2.0
Contributors
- Chen Chao (cnfree2000@hotmail.com) - initial API and implementation
- Robert Zenz
- Pascal Bihler
- Nick Lombard
- Jan Peter Stotz
- Nicolas Baumann (@nbauma109)