ProGuard is a free Java class file shrinker, optimizer, and obfuscator. It can detect and remove unused classes, fields, methods, and attributes. It can then optimize bytecode and remove unused instructions. Finally, it can rename the remaining classes, fields, and methods using short meaningless names. The resulting jars are more compact and more difficult to reverse-engineer. Advantages of ProGuard compared to other Java shrinkers and obfuscators are compact template-based configuration, memory efficiency, and speed.
This release fixes a number of bugs. Notably, ".class" constructs compiled in Java 6 are now handled correctly. The optimization step now avoids a possible division by 0 and correctly processes local variables with indices larger than 255. The documentation and examples have been updated.