yGuardFree Java™ Bytecode Obfuscator and Shrinker
Secure and compact code
yGuard is a free and open source Java bytecode obfuscator and shrinker.
By obfuscation you can convert your compiled code into one that is difficult to understand for humans. This way you can secure it from unwanted access.
At the same time it shrinks the code size drastically, which helps to reduce the startup time of the application.
yGuard is a free and open source Java bytecode obfuscator and shrinker. It can process .class files compiled by any stable JDK (up to Java 17). yGuard provides functionality to rename classes, interfaces, methods etc. in order to scramble the resulting archive, making it much harder to reverse-engineer.
Additionally yGuard offers code-shrinking functionality which reduces archive size (faster startup) by removing dead code.
What to expect on this page
Fully Open Source
Because we want to give something back to the community!
Open Source is an essential part of modern software development and helps us to create better software every day.
We want to be part of that movement! That is why we made yGuard fully open source.
Why use yGuard?
Name Obfuscation
yGuard protects your .class files from reverse engineering by replacing package, class, method, and field names with inexpressive characters. If afterwards the obfuscated .class files are decompiled, it will be extremely difficult to derive the original purpose of the obfuscated code entities.
Code Shrinking
yGuard drastically reduces the size of the input Jar files if your application does not use all of the contained bytecode. This reduces the startup time of your application.
The shrinking engine analyzes the bytecode of all input Jar files in order to determine which code entities can not be reached from a set of given code entry points. These obsolete code fragments (either entire classes or single methods and fields) will then be removed by yGuard. If you use any third party libraries, you will probably benefit a lot from the yGuard shrinking engine, since applications usually do not use all of the functionality provided by an external library and a large fraction of the contained bytecode and resources can be safely removed.
yGuard features
Free license
Free & Open Source
Because we want to give something back to the community!
Open Source is an essential part of modern software development and helps us to create better software every day. We want to be part of that movement! Thats why we made yGuard fully open source.
You can find the source code on GitHub.
Technical information
Requirements
To run the yGuard software, you need JDK 1.7.x or greater and Ant 1.5.x or greater (it might be compatible with earlier versions of either software, this has not been tested, however).
Java compatibility
yGuard is compatible with all published Java versions (up to Java 17).
However, the functionality may vary slightly depending on the version used. The documentation includes a detailed description of the supported features for the different versions. There is also a section regarding 3rd party JVM support if you intend to use yGuard with something other than Java.
Help
Have more questions?
Find helpful information here:
Getting started
yGuard is available for any of the major build tools in the Java ecosystem. The software is provided as on Maven Central. Additionally the archives are also available on GitHub.
Before using yGuard you will need to set it up for your favorite build tool, but no problem there. yGuard comes with exhaustive documentation including all the necessary steps to get you started. If you seek to solve a complex problem, we provide additional examples.
Once you have downloaded and configured yGuard, you can enjoy the additional security provided to your product. Free of charge, because yGuard is open-source!
you might want to explore
Why, how, what? —Just ask the diagramming experts!
Our team is happy to advise you – no strings attached. Let's talk about your project and find the perfect solution for your needs!
E-mail: hello@yworks.com
Your message has been sent.
Your request could not be sent. Please reload the page and try again.
If the problem persists, please report the error to webmaster@yworks.com.
Learn more in our privacy policy.