| <!doctype html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <html> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> |
| <meta http-equiv="content-style-type" content="text/css"> |
| <meta name="author" content="Eric Lafortune"> |
| <meta name="description" content="ProGuard: java shrinker, optimizer, obfuscator, and preverifier"> |
| <meta name="keywords" content="java obfuscator, optimizer, shrinker, preverfier"> |
| <link rel="stylesheet" type="text/css" href="style.css"> |
| <title>ProGuard Main</title> |
| </head> |
| <body> |
| |
| <h2>Main</h2> |
| |
| <p class="intro"> |
| <b>ProGuard</b> is a free Java class file shrinker, optimizer, obfuscator, and |
| preverifier. It 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. |
| </p> |
| Some uses of <b>ProGuard</b> are: |
| <ul> |
| |
| <li>Creating more compact code, for smaller code archives, faster transfer |
| across networks, faster loading, and smaller memory footprints. |
| |
| <li>Making programs and libraries harder to reverse-engineer. |
| |
| <li>Listing dead code, so it can be removed from the source code. |
| |
| <li>Retargeting and preverifying existing class files for Java 6, to take full |
| advantage of Java 6's faster class loading. |
| |
| </ul> |
| <p> |
| <b>ProGuard</b>'s main advantage compared to other Java obfuscators is |
| probably its compact template-based configuration. A few intuitive command |
| line options or a simple configuration file are usually sufficient. For |
| instance, the following configuration option preserves all applets in a jar: |
| <pre> |
| -keep public class * extends java.applet.Applet |
| </pre> |
| The user manual explains all available options and shows more examples of this |
| powerful configuration style. |
| <p> |
| <b>ProGuard</b> is fast. It only takes seconds to process programs and |
| libraries of several megabytes. The results section presents actual figures |
| for a number of applications. |
| <p> |
| <b>ProGuard</b> is a command-line tool with an optional graphical user |
| interface. It also comes with plugins for Ant and for the JME Wireless |
| Toolkit. |
| <p> |
| <p class="intro"> |
| Version 4.0 introduced preverification and more bytecode optimizations. Please |
| report any problems, so they can be fixed soon. |
| </p> |
| The following sections provide more detailed information: |
| <ul> |
| <li><a href="main.html">Main</a>: this overview page. |
| <li><a href="results.html">Results</a>: some results obtained with |
| <b>ProGuard</b>, including timings and memory usage. |
| <li><a href="FAQ.html">FAQ</a>: answers to some Frequently Asked Questions. |
| <li><a href="manual/index.html">Manual</a>: the complete <b>ProGuard</b> user |
| manual, with examples and troubleshooting tips. |
| <li><a href="quality.html">Quality</a>: a discussion of the (excellent) quality |
| of <b>ProGuard</b>'s code. |
| <li><a href="screenshots.html">Screenshots</a>: some impressions of what <b>ProGuard</b> looks like. |
| <li><a href="testimonials.html">Testimonials</a>: what users think of |
| <b>ProGuard</b>. |
| <li><a href="license.html">License</a>: <b>ProGuard</b> is free, under a GPL |
| license. |
| <li><a href="downloads.html">Downloads</a>: download the <b>ProGuard</b> |
| package yourself. |
| <li><a href="feedback.html">Feedback</a>: tell me about your experiences, or |
| learn from others on our forums. |
| <li><a href="acknowledgements.html">Acknowledgements</a>: people who have been |
| helpful. |
| <li><a href="alternatives.html">Alternatives</a>: other Java obfuscators, |
| optimizers, and shrinkers. |
| </ul> |
| |
| <hr> |
| <address> |
| Copyright © 2002-2009 |
| <a href="http://www.graphics.cornell.edu/~eric/">Eric Lafortune</a>. |
| </address> |
| </body> |
| </html> |