Input

Deobfuscated Output

What Is the Java Deobfuscator?

Dealing with obfuscated Java from a decompiled Android APK or a legacy enterprise project? The Java Deobfuscator reverses common obfuscation patterns and beautifies Java code so you can actually read it. Tools like ProGuard and DexGuard rename identifiers and apply bytecode transformations, but plenty of obfuscation happens at the source level too — unicode escapes, string concatenation tricks, and crushed whitespace. This tool handles those source-level patterns automatically. For bytecode-level decompilation, you'd pair it with a tool like jadx or CFR first.

This tool runs entirely in your browser. No code is sent to any server. It handles common obfuscation techniques including unicode escape decoding, string concatenation resolution, and whitespace restoration with proper indentation for Java class and method structures.

How to Use This Tool

1

Paste or Upload

Paste obfuscated or minified Java code into the left panel, or upload a .java or .txt file. Click Sample to load an example.

2

View Deobfuscated Output

The right panel shows cleaned and formatted Java code. Unicode escapes are decoded, string concatenations are resolved, and indentation is restored.

3

Copy or Download

Use Copy or Download to save the result as a .java file for further analysis or debugging.

Java Deobfuscator Examples

Here is an example of deobfuscating Java code that uses unicode escape sequences—one of the most common Java obfuscation techniques.

Example: Unicode Escape Obfuscation

Obfuscated input:

Input

Deobfuscated output:

Output

When the Java Deobfuscator Helps

Java is used across Android apps, enterprise backends, and embedded systems. Obfuscated Java is common in: Android APK reverse engineering, malware analysis, license protection research, and legacy code recovery. Tools like ProGuard and DexGuard rename identifiers and apply bytecode transformations—full reversal requires specialized decompilers. This tool handles the simpler source-level obfuscation patterns automatically.

Frequently Asked Questions

Can this tool reverse ProGuard obfuscation?

ProGuard renames classes, methods, and fields to short meaningless names. Full reversal requires a mapping file. This tool handles source-level patterns like unicode escapes and string concatenation, but cannot rename identifiers back to their originals without the ProGuard mapping.

Is my Java code sent to a server?

No. All deobfuscation runs entirely in your browser. Your code is never uploaded to any server.

What obfuscation patterns does this Java deobfuscator handle?

It decodes unicode escape sequences (\u0041 → A), resolves string concatenation ("hel" + "lo" → "hello"), restores indentation for Java blocks (class, interface, enum, if, for, while, try/catch/finally), and normalizes whitespace.

Does it work on Android code?

This tool works on Java source code text. For Android APKs you first need a decompiler like jadx or apktool to convert bytecode to Java source, then this tool can help clean up the decompiled output.

Can I upload .class or .jar files?

This tool processes Java source text (.java, .txt). Binary .class and .jar files contain compiled bytecode which requires a bytecode decompiler—not a source-level deobfuscator. Use jadx or CFR for bytecode decompilation first.

Related Tools

Learn more about Java on the Oracle Java Documentation and Android Developer Reference.