We use cookies.This website uses essential cookies to operate core features. With your consent, we also use analytics cookies to understand traffic and improve the service. For more details, see our .
Was this tool helpful to use?
Your feedback helps us make it better
Turn Java class, JAR, WAR, or EAR files into readable Java source and download the output as a ZIP.
Choose filesDrop a file here, or click to choose
.class · .jar · .war · .ear
Max 1 MB
Upload limits: guest 1 MB, member 2 MB, advanced 5 MB, pro 20 MB.
Obfuscation, optimization, missing debug symbols, and nested JARs in WAR/EAR files can affect results.
Overview
Understand what the tool solves, how it works, and the boundaries of its data.
A Java compiler turns classes into binary class files. These retain fields, methods, instructions, and attributes that a decompiler uses to reconstruct readable Java-like source. The result helps explain behavior; it is not the original project.
Upload a .class file or an archive (.jar, .war, or .ear) to preview source and download it as a ZIP. Nested JARs may not be processed recursively.
Debug attributes are optional. If a build omitted source filenames, local-variable names, or debug records, they may not be recoverable. Oracle's Java Virtual Machine Specification, §2.1 and Chapter 4, describe the class-file format and attributes for Java SE 21.
Guide
Follow the workflow and verify inputs and outputs with practical examples.
Choose a .class, .jar, .war, or .ear. An archive helps when you need to inspect related classes.
Drop the file or browse to select it. Size limits are 1 MB for guests, 2 MB for standard members, 5 MB for advanced members, and 20 MB for professional members.
Filter by filename and preview the generated text. Check package names, classes, methods, and key branches.
The ZIP contains generated source, not the original dependencies, resources, or build configuration.
Use cases
See how the tool fits into real work and everyday tasks.
If source files are missing but a class or JAR remains, review method behavior and collect clues for manual recovery. The output is not a line-for-line replacement.
For software you may inspect, compare classes and call paths across releases to investigate behavior or compatibility changes.
Compare a Java example with its class output to see how loops, branches, and exception handling appear after compilation.
Source-only JARs and other JVM languages may return no Java source.
Q&A
Find concise answers to common questions and confusing cases.
No. Compilation can remove comments, formatting, and variable names; the decompiler reconstructs code from what remains.
No. External dependencies are not fetched, and nested JARs are not guaranteed to be processed.
Damage, encryption, obfuscation, unsupported features, or missing classes can prevent complete output.
Not necessarily. It may lack build files, resources, and dependencies. Review and complete it before rebuilding.
Notes
Review scope, result limitations, and important precautions before use.
Decompilation approximates compiled code; it is not decryption. Optimization, obfuscation, and missing debug data can affect readability.
Files are uploaded for cloud processing and cleaned under storage lifecycle rules, so completion does not mean immediate deletion. Do not upload secrets, personal information, or software you are not authorized to analyze. Follow applicable licenses and laws.
Results support code review and learning; they do not guarantee a complete or buildable project.
Related
Discover related tools, collections, and available API capabilities.