Sunday, October 25, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Reverse Engineering Tools
  3. CFR

CFR

What it is

CFR is a free Java decompiler that converts Java class files into Java source. It can process named class files, classes on a classpath, or an entire JAR provided by path. The command-line tool can place output in a chosen directory using the --outputdir option, and decompilation can be adjusted with command-line settings or an options file. Its maker says CFR can handle modern Java features, including much of Java 9, 12, and 14. It can also attempt to decompile class files from other JVM languages, but produces Java output rather than the original language. CFR is written in Java 6 and is described as working wherever Java 6 runs. It is available as a downloadable JAR, through Maven, and from the GitHub repository. The FAQ says an API is available as of version 0.135, and the repository identifies the license as MIT. CFR supports bytecode decompilation, not native-code decompilation. Its maker also notes that some inputs can expose edge cases and produce poor results.

For and against

For

  • Free, with no paid plans or usage limits stated
  • Processes class files, classpaths, and JARs
  • Offers command-line and options-file configuration
  • API available as of version 0.135

Against

  • Does not decompile native code
  • Other JVM languages are output as Java
  • Some inputs may produce poor results

The verdict

CFR provides a free command-line route from Java bytecode to source, with JAR processing and configurable output. Expect Java output for other JVM languages and possible weak results on edge cases.

Who it suits

CFR suits developers who need to inspect Java bytecode or try to recover Java source from class files and JARs. It may also be useful for attempting Java output from other JVM-language class files.

Plans and prices

Free

Free

No paid plans or usage limits stated

Every plan, in full

On the record

API
The FAQ states that CFR has an API as of version 0.135.benf.org · read 8 Oct 2026
Configuration
Decompilation can be customized with command-line options or an options file.github.com · read 8 Oct 2026
Distribution
CFR is available as a downloadable JAR, through Maven, and from the GitHub repository.benf.org · read 8 Oct 2026
Java support
The maker says CFR can decompile modern Java features, including much of Java 9, 12, and 14.benf.org · read 8 Oct 2026
JVM languages
CFR can also attempt to turn class files from other JVM languages back into Java.benf.org · read 8 Oct 2026
Known limitation
The maker says CFR has edge cases and may produce poor results for some inputs.benf.org · read 8 Oct 2026
License
The maker’s FAQ directs users to the project README for its license; the project repository identifies the license as MIT.github.com · read 8 Oct 2026
Output
The command-line tool can emit decompiled files to a specified output directory using --outputdir.benf.org · read 8 Oct 2026
Output language
For class files from other JVM languages, CFR generates Java output rather than the original language.benf.org · read 8 Oct 2026
Purpose
CFR is a Java decompiler that converts Java class files back into Java source.benf.org · read 8 Oct 2026
Runtime
CFR is written in Java 6 and the maker says it will work anywhere Java 6 runs.benf.org · read 8 Oct 2026
Support
The maker invites users to email reports of problems and directs bug reports to the GitHub issue tracker.benf.org · read 8 Oct 2026
Support limitation
The maker asks users not to submit class files they do not own the copyright to.benf.org · read 8 Oct 2026
Usage
CFR can decompile named class files or classes on a classpath, and can process an entire JAR by providing its path.benf.org · read 8 Oct 2026

Alternatives to CFR

Every alternative, ranked