Skip to content
73 changes: 8 additions & 65 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,8 @@
# JD-GUI

JD-GUI, a standalone graphical utility that displays Java sources from CLASS files.

![](https://raw.githubusercontent.com/java-decompiler/jd-gui/master/src/website/img/jd-gui.png)

- Java Decompiler projects home page: [http://java-decompiler.github.io](http://java-decompiler.github.io)
- JD-GUI source code: [https://github.com/java-decompiler/jd-gui](https://github.com/java-decompiler/jd-gui)

## Description
JD-GUI is a standalone graphical utility that displays Java source codes of
".class" files. You can browse the reconstructed source code with the JD-GUI
for instant access to methods and fields.

## How to build JD-GUI ?
```
> git clone https://github.com/java-decompiler/jd-gui.git
> cd jd-gui
> ./gradlew build
```
generate :
- _"build/libs/jd-gui-x.y.z.jar"_
- _"build/libs/jd-gui-x.y.z-min.jar"_
- _"build/distributions/jd-gui-windows-x.y.z.zip"_
- _"build/distributions/jd-gui-osx-x.y.z.tar"_
- _"build/distributions/jd-gui-x.y.z.deb"_
- _"build/distributions/jd-gui-x.y.z.rpm"_

## How to launch JD-GUI ?
- Double-click on _"jd-gui-x.y.z.jar"_
- Double-click on _"jd-gui.exe"_ application from Windows
- Double-click on _"JD-GUI"_ application from Mac OSX
- Execute _"java -jar jd-gui-x.y.z.jar"_ or _"java -classpath jd-gui-x.y.z.jar org.jd.gui.App"_

## How to use JD-GUI ?
- Open a file with menu "File > Open File..."
- Open recent files with menu "File > Recent Files"
- Drag and drop files from your file explorer

## How to extend JD-GUI ?
```
> ./gradlew idea
```
generate Idea Intellij project
```
> ./gradlew eclipse
```
generate Eclipse project
```
> java -classpath jd-gui-x.y.z.jar;myextension1.jar;myextension2.jar org.jd.gui.App
```
launch JD-GUI with your extensions

## How to uninstall JD-GUI ?
- Java: Delete "jd-gui-x.y.z.jar" and "jd-gui.cfg".
- Mac OSX: Drag and drop "JD-GUI" application into the trash.
- Windows: Delete "jd-gui.exe" and "jd-gui.cfg".

## License
Released under the [GNU GPL v3](LICENSE).

## Donations
Did JD-GUI help you to solve a critical situation? Do you use JD-Eclipse daily? What about making a donation?

[![paypal](https://raw.githubusercontent.com/java-decompiler/jd-gui/master/src/website/img/btn_donate_euro.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=C88ZMVZ78RF22) [![paypal](https://raw.githubusercontent.com/java-decompiler/jd-gui/master/src/website/img/btn_donate_usd.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CRMXT4Y4QLQGU)
This project is unmaintained; for an actively maintained successor, see [JD-GUI-DUO](https://github.com/nbauma109/jd-gui-duo).

Many changes have been made, making the project unlikely to be merged into the original one:
* [ANTLR](https://www.antlr.org/) and the outdated JDK7 grammar [Java.g4](services/src/main/antlr/Java.g4) are dropped and replaced by [Eclipse JDT Core](https://github.com/eclipse-jdt/eclipse.jdt.core) to take advantage of nice features such as type bindings, compiler errors/warnings, and a more convenient AST
* [ProGuard](https://github.com/Guardsquare/proguard) is dropped as it made the project harder to maintain, the build really slow, and the errors harder to diagnose
* JRE is now generated by [jre-builder](https://github.com/nbauma109/jre-builder) for the needs of the project in version 25 to take advantage of the latest libraries compiled in newer versions of Java
* Other decompilers are supported (CFR, Procyon, Fernflower, Vineflower, JADX) with the [transformer-api](https://github.com/nbauma109/transformer-api) (forked from [helios-decompiler](https://github.com/helios-decompiler/transformer-api))
* Use of [JarComp](https://activityworkshop.net/software/jarcomp/index.html) and [NetBeans diff module](https://github.com/nbauma109/netbeans-visual-diff-standalone) to provide a comparison feature