The standard Java and Android obfuscator

ProGuard is our free generic optimizer and obfuscator for Java bytecode. ProGuard makes your apps smaller (20% - 90%) and faster (10% - 20%). It's also the first step to protect your apps against reverse-engineering.  Over the years, ProGuard has solidly become the industry standard in its field. It is the default tool in development environments like Oracle's Wireless Toolkit, NetBeans, EclipseME, Intel's TXE SDK and Google's Android SDK. However, when security is important, you should have a look at DexGuard, which offers additional Android-specific security layers on top of ProGuard.

Successful applications

Desktop applications

Obfuscate Java applications. Optimization is not as important on virtual machines with advanced JIT compilation, but obfuscation helps to protect the app against reverse engineering.

Embedded applications

Optimize and obfuscate Java applications for cell phones, Blu-ray players, set-top boxes, and other constrained devices.

Mobile applications

Optimize and obfuscate Android apps. As a generic optimizer and obfuscator, ProGuard also works on Java bytecode for Android. For additional security, consider DexGuard, our dedicated product for Android.

Technically, ProGuard detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or for Java Micro Edition.

You can download the latest release, including the documentation, examples, and the source code from the official ProGuard site at Sourceforge.

Add more protection

  ProGuard DexGuard Standard DexGuard Enterprise
Size improvements check check check
Performance improvements check check check
Name obfuscation check check check
Code protection   check check
Resource protection     check
Application integrity     check
Platform integrity     check
Communication hardening     check