|
| 1 | +# Java Decompiler |
| 2 | + |
| 3 | +## About |
| 4 | + |
| 5 | +This Docker image is equipped with four Java decompilers: |
| 6 | +- [CFR](https://www.benf.org/other/cfr/) |
| 7 | +- [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine) |
| 8 | +- [Krakatau](https://github.com/Storyyeller/Krakatau) |
| 9 | +- [Procyon](https://github.com/mstrobel/procyon) |
| 10 | + |
| 11 | +It also includes [Enjarify](https://github.com/Storyyeller/enjarify) and [jadx](https://github.com/skylot/jadx) for the decompilation of APK files. |
| 12 | + |
| 13 | +## Usage |
| 14 | + |
| 15 | +First, create a directory `./infiles` that contains all your JAR and APK files you want to decompile. |
| 16 | + |
| 17 | +Then, in case the targeted files depend on any external library, put a copy of these libraries in JAR format into a directory `./libfiles`. |
| 18 | +Some decompilers depend on this to work properly. |
| 19 | + |
| 20 | +Next, prepare an empty directory `./outfiles`, which is where the output of the decompilers will be written to. |
| 21 | + |
| 22 | +Lastly, run the Docker image via the following command. |
| 23 | + |
| 24 | +```bash |
| 25 | +docker run \ |
| 26 | + -ti \ |
| 27 | + --rm \ |
| 28 | + -v ${PWD}/infiles:/infiles:Z,ro \ |
| 29 | + -v ${PWD}/libfiles:/libfiles:Z,ro \ |
| 30 | + -v ${PWD}/outfiles:/outfiles:Z,rw \ |
| 31 | + eikendev/java-decompiler |
| 32 | +``` |
| 33 | + |
| 34 | +If you want to use [Podman](https://podman.io/), simply switch `docker` to `podman` at the start of the command. |
0 commit comments