Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Java Decompiler

Have your decompilers ready when you need them most.

Java Decompiler combines the strength of four popular Java decompilers.


📄 Usage

First, create a directory ./infiles that contains all your JAR and APK files you want to decompile.

Then, in case the targeted files depend on any external library, put a copy of these libraries in JAR format into a directory ./libfiles. Some decompilers depend on this to work properly.

Next, prepare an empty directory ./outfiles, which is where the output of the decompilers will be written to.

Lastly, run the Docker image via the following command.

docker run \
	-ti \
	--rm \
	-v "$PWD/infiles:/infiles:Z,ro" \
	-v "$PWD/libfiles:/libfiles:Z,ro" \
	-v "$PWD/outfiles:/outfiles:Z,rw" \

If you want to use Podman, simply switch docker to podman at the start of the command.

💡 Background

This Docker image is equipped with four Java decompilers:

It also includes Enjarify and jadx for the decompilation of APK files.

For more information on all these tools, check out my related blog post.