ecd-plugin / ecd

An Eclipse Plugin to integrate different Class Decompiler seamlessly into the development workflow
Eclipse Public License 1.0
264 stars 57 forks source link

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?

Drag and Drop installation: Drag to your running Eclipse workspace.

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.

  1. Launch Eclipse,
  2. Click on "Help > Install New Software...",
  3. Click on button "Add..." to add an new repository,
  4. Enter name as "Enhanced Class Decompiler Update Site" and enter location as "https://ecd-plugin.github.io/update", then click on button "OK",
  5. Check "Enhanced Class Decompiler",
  6. Next, next, next... and restart.

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"

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?

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:

  1. git clone https://github.com/ecd-plugin/ecd

  2. Run cd ecd

  3. Run mvn clean package

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

  4. Install Eclipse for RCP and RAP Developers

  5. 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".

  6. Open the org.sf.feeling.decompiler.updatesite project in the Package Explorer

  7. Open the file site.xml within the project

  8. Press "Build All"

  9. 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:

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

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:

Used libraries:

Contributors