Downloads
ProGuard is distributed under the GNU General Public License.
Please refer to the license page for more details.
ProGuard is written in Java. It requires a Java 2 runtime environment.
You can download the latest release (containing the program jar, the
documentation you're reading now, examples, and source code) from this
location:
Download section (at SourceForge)
If you're still working with an older version of ProGuard, check out
the summary of changes below, to see if you're missing something essential.
Better look at the up-to-date on-line version if
you're reading a local copy of this page.
Version 2.0
- Added a graphical user interface for ProGuard and ReTrace.
- Added
-applymapping
option for incremental obfuscation.
- Added support for filtering input and output files.
- Added support for the J++
SourceDir
attribute.
- Improved detection of
.class
constructs.
- Improved handling of misplaced manifest files.
- Improved implementation of ReTrace.
- Worked around String UTF-8 encoding bug affecting foreign characters.
- Fixed exception when ignoring warnings.
- Fixed various Ant task bugs.
- Updated documentation and examples.
Version 1.7
- Fixed various Ant task bugs.
- Fixed ClassCastException due to explicitly used abstract classes with
implicitly used interfaces targeted at JRE1.2 (the default in JDK1.4).
- Fixed
-defaultpackage
bug for protected classes and class
members.
- Fixed ReTrace bug when retracing without line number tables.
- Worked around zip package problems with duplicate out entries and rogue
manifest files.
- Added work-around for handling malformed legacy interface class files.
- Updated documentation and examples.
Version 1.6
- Added support for Ant.
- Added support for the J2ME Wireless Toolkit.
- Added support for reading and writing directory hierarchies.
- Added option for specifying resource jars and directories.
- Added support for wildcards in class member specifications.
- Improved handling of the
-defaultpackage
option.
- Improved stack trace parsing in ReTrace tool.
- Fixed processing of libraries containing public as well as non-public
extensions of non-public classes.
- Fixed examples for processing libraries, midlets, and serializable code.
- Updated documentation and examples.
Version 1.5
- Fixed processing of retrofitted library interfaces.
- Fixed processing of
.class
constructs in internal classes
targeted at JRE1.2 (the default in JDK1.4).
- Fixed
-dump
option when -outjar
option is not
present.
- Updated documentation and examples.
Version 1.4
- Now copying resource files over from the input jars to the output jar.
- Added option to obfuscate using lower-case class names only.
- Added better option for obfuscating native methods.
- Added option not to ignore non-public library classes.
- Added automatic .class detection for classes compiled with Jikes.
- Updated documentation and examples.
Version 1.3
- Added support for wildcards in class names.
- Added tool to de-obfuscate stack traces.
- Added options to print processing information to files.
- Added option to rename source file attributes.
- Fixed processing of implicitly used interfaces targeted at JRE1.2 (the
default in JDK1.4)
- Fixed processing of configurations with negated access modifiers.
- Fixed duplicate class entry bug.
- Updated documentation and examples.
Version 1.2
- Improved speed.
- Fixed processing of classes targeted at JRE1.2 (the default in JDK1.4)
with references to their own subclasses.
- Fixed processing of static initializers in J2ME MIDP applications.
- Fixed processing of retrofitted interfaces (again).
- Added more flexible handling of white space in configuration.
- Updated documentation.
Version 1.1
Version 1.0
- First public release, based on class parsing code from Mark Welsh's
RetroGuard.
Copyright © 2002-2003
Eric Lafortune.