Make your applets
smaller and faster!
J.Class Optimizer (JCO) is a program, which allows appreciably to reduce the size of JavaTM class files and to speed up their load.
J.Class Optimizer processes byte code files of Java Virtual Machine (JVM) (files with extension .class), produced by Java or other languages compilers. You can optimize both class files, which you have produced by compilation of the programs, and class files, the source code of which is inaccessible to you.
Both application and applets can be optimized.
J.Class Optimizer can process class files appropriate to the Java and Java Virtual Machine (JVM) specifications of versions 1.02 - 1.2.
The size of class file can be reduced up to 50%.
J.Class Optimizer being the console 32-bit application is simple to use.
To start J.Class Optimizer use in MS DOS session the command:
jco [keys] file(s) [keys]
To optimize many files use wildcards * and ? in the file(s) parameter.
-dbg -- remove all debug information. The majority of compilers allow to include additional information in class file. It facilitates the program debugging, and improves diagnostics check, but is not necessary for execution of the debugged application or applet.
Use of parameter -dbg is equivalent to -var -lin -src.
-var -- remove local variables tables. The local variable table contains variable identifiers. The table is not necessary in the run time.
-lin -- remove line number tables. While debugging the line number table allows to determine the place of the error in the source code. The table is not necessary in the run time.
-src -- remove source file information. The name of the source file enters the class file by the compiler. This information is not necessary for the execution of the debugged class.
-depr -- remove Deprecated attributes. Some classes (for example classes of JDK 1.1 and JDK 1.2) contain Deprecated attributes. These attributes can be used by the compiler for messaging. But this attribute is not necessary even if other class files are compiled with the given one. In the run time this attribute is not necessary.
-synt -- remove Synthetic attributes. Some classes (for example classes of JDK 1.1 and JDK 1.2) contain attributes Synthetic. This attribute is used to compile the given class with other classes. In the run time this attribute is not necessary.
-uattr -- remove undefined attributes. All attributes not defined as part of Java Virtual Machine specification must not affect the semantics of class or interface types. Java Virtual Machine implementations are required to silently ignore. Therefore such attributes can be removed.
-max -- maximal reduction without removal of Synthetic attributes.
Use of parameter -max is equivalent to -dbg -depr -uattr.
-super -- maximal reduction including removal of Synthetic attributes.
Use of parameter -super is equivalent to -max -synt.
-noren -- disable members renaming (reduction decreases). When optimizing a class file J.Class Optimizer changes identifiers of some members of the class so that the size of the class file decreases, and the behaviour does not vary. The renaming also complicates reverse engineering. However, you are given the opportunity to forbid renaming.
-nowarn -- ignore and no print warnings. In some cases warning messages are given by J.Class Optimizer. For example, when in class file there is an attribute not defined as part of Java Virtual Machine specification having unzero length. In this case optimization of a constant pool can result in the wrong interpretation of this attribute, if it is not removed (-uattr key). You can forbid the warning seal in similar situations.
-old -- old file(s) keep old name(s). If the key -old is not specified (by default), the optimized class files will have extension .class, and the old (not optimized) files will receive extension .~class. If the key -old is specified explicit, the optimized class files will have extension .~class, and the old (not optimized) files will keep old extension (.class). It is recommended to use the key -old, if you are not sure, that you will take advantage of the optimization results.
-tst -- optimization test without rewriting class file(s). If you only want to find out of reduction of the files size, use the key -tst.
-help -- printing help.
J.Class Optimizer is distributed as self-extracting archive jco100-win32.exe. For installation make the following:
Attention! The file jco.key should always settle down in one directory with a file jco.exe.
For uninstallation it is enough to delete the J.Class Optimizer files.
This program is distributed as shareware (look at "license.txt" for details). Being unregistered, it carries out some functions only with use of the key -tst, giving out the warning. After you register (look at "order.txt" for details), we'll send you your personal registration code.
J.Class Optimizer is provided with support via e-mail. For technical support, please contact us at:
In the subject of your mail, please write JCO version number.
If you use applets optimized by JCO on your pages, you can place link to J.Class Optimizer Home Page:
<!-- begin of JCO button -->
In case of any problem you can apply directly to the author of the program:
This software is written
Java and all Java-based trademarks
are trademarks or registered trademarks of
Sun Microsystems, Inc. in the United States
and other countries.