[Image] [Image] crema a little cloud in your Java Crema, the Java obfuscator, scrambles the symbolic information in your .class files to make them less vulnerable to decompilation. Look here to get a glimpse of what Crema can do, or here to download the evaluation version. Symbolic information If you view some of your .class files with a binary file viewer, you'll see that these files contain a lot of recognizable strings: the name of the class, its superclass, interfaces, fields, methods, types, exceptions, etc. And if you compiled with debugging information (javac -g option), you'll even see the names of all local variables. Source comments are about the only thing missing. The Java Virtual Machine (JVM) needs most of this symbolic information to link your classes to each other and to library packages. But at the same time the presence of this information makes your classes vulnerable to decompilation. Scrambling Actually, the only thing the JVM does with the symbolic information is to connect items and references of the same name (and type). As long as the same name is used consistently for a particular item, it does not matter if that name is meaningful and pleasant to your eyes (like "sortTableByName") or a random sequence of letters (like "sDh345jlSF", or worse). [Image] Crema takes the set of class files that make up your program, and scrambles the names of all items (classes, fields, methods, etc.) that are defined in that set. It scrambles the definition and any references in the same way, so that the JVM will make the right connections. This "scrambling" is an irreversible process, ensuring that not even the smartest decompiler will ever be able to reconstruct the meaningful names. Class files Crema operates on class files, rather than Java source files. Doing so allows it to pull some tricks that the compiler would not accept (like identifiers that start with a digit). But more importantly, it keeps your sources clean and your development process simple. And you can leave debugging info on at all times. Just before you put your classes on your web site, you run them through Crema. A few seconds later you can do a final test and you are ready to go! Availability The current version of Crema is 1.02. The evaluation version (free) can be downloaded right here. The evaluation version is fully functional, except that with most browsers applets will only work locally. Single user licenses ($39) are available with instantaneous net delivery from software dot net. Site licenses are also available. See the documentation for more information. . [Image] Crema was developed by Hanpeter van Vliet