Jarg
The jarg reduces the size of a jar file in which java class files are stored. "Size curtailment can be carried out simply" is the 1st target. However, as a result of processing by jarg, since a Java class file is optimized, it becomes quicker, and since it is renamed, it becomes that it is harder to be analyzed. That is, jarg is 'Java Optimizer', and it is 'Java Obfuscator' and is also 'Java Shrinker' or 'Java Reducer'.
JavaGuard
JavaGuard is a general purpose bytecode obfuscator, designed to fit effortlessly into your regular build and testing process, providing peace of mind that your valuable Java code is more secure against decompilation and other forms of reverse engineering.
JODE
JODE is a java package containing a decompiler and an optimizer for java. This package is freely available under the GNU GPL. The bytecode package and the core decompiler is now under GNU Lesser General Public License, so you can integrate it in your project.
ProGuard
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 smaller and harder to reverse-engineer.
RetroGuard
The Java class file format exposes an enormous amount of information about your original Java source code. Using one of the many decompilers on the market, Java class files can be accurately converted back into source format. Your code is therefore open to review and reverse-engineering by competitors and to unauthorized modification and redistribution.
yGuard
yGuard is a Java Bytecode Obfuscator. There are many reasons for obfuscating Java Bytecode. If you or your company is planning to deploy a library or application that is written in Java you often do not want your customers to gain access to the source code.