               J.Class Optimizer for Windows. Version 1.00.1
               =============================================
                         (c) S. Sverdlov, 1999


   Contents
   ~~~~~~~~
      Description
      Requirements
      Usage
      Installation
      Uninstallation
      Registration
      Technical support 
      Where to get the latest version
   
   Description
   ~~~~~~~~~~~
      J.Class Optimizer (JCO) is a program, which allows appreciablly 
      to reduce the size of Java(tm) 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.
      
      J.Class Optimizer
      
         - removes from class file unused fields, methods, strings, 
           constants, attributes
         - optimizes a constant pool and byte code
         - removes the debug information
      
      The size of class file can be reduced up to 50%.
   
   Requirements
   ~~~~~~~~~~~~
      - Windows 95 (any version), or Windows 98, or 
        Windows NT 4.0 running on Pentium CPU
      - 1 megabyte RAM
      - less than 0.5 megabyte of hard disk space
   
   Usage
   ~~~~~
      J.Class Optimizer being the console 32-bit application is simple to use.
      
      Running
      -------
      
      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.
      
      Keys
      ----
      
      -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.
      
   Installation
   ~~~~~~~~~~~~
      J.Class Optimizer is distributed as self-extracting archive
      jco100-win32.exe. For installation make the following:
      
      1) Run jco100-win32.exe.
      
      2) You can delele the file jco100-win32.exe.
      
      3) To start J.Class Optimizer, if the current directory is distinct 
      from that, where the file jco.exe settles down, it is possible to 
      do one of the three:
      
         a) Add the name of the directory, where jco.exe settles down 
         to a PATH command of a file autoexec.bat . For example, if jco.exe 
         is placed in the directory C:\JCO, in a PATH command of a file 
         autoexec.bat it is possible to write down:
                  PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\JCO
         
         b) Edit the file jco.bat so that the path to the file jco.exe is 
         specified in it. Copy the file jco.bat in the directory, which has
         already been written down in a PATH command of the file autoexec.bat 
         (for example, in the directory C:\WINDOWS). If J.Class Optimizer 
         will settle down in the directory C:\JCO, in the file jco.bat 
         there should be such line: 
                   C:\JCO\jco.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
         
         c) Copy files jco.exe and jco.key in the directory, which has
         already been written down in a PATH command of the file autoexec.bat 
         (for example, in the directory C:\WINDOWS).
         
      A_t_t_e_n_t_i_o_n! The file jco.key should always settle down in 
      one directory with a file jco.exe.
      
   Uninstallation
   ~~~~~~~~~~~~~~
      For uninstallation it is enough to delete the J.Class Optimizer files.   

   Registration
   ~~~~~~~~~~~~
      This program is distributed as shareware (look at "license.txt" for 
      details). Being unregistered, it carries out some functions only with 
      the use of a key -tst, giving out the warning.
      
      After you register (look at "order.txt" for details), we'll send you 
      your personal registration code.
      
   Technical support
   ~~~~~~~~~~~~~~~~~
      J.Class Optimizer is provided with support via e-mail.
      For technical support, please contact us at:
      
                             jco@mail.ru
      
      In the subject of your mail, please write JCO version number.
   
   Where to get the latest version
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      The latest version of J.Class Optimizer is always available from
      JCO Home Page: 
                          http://jco.da.ru
   
--------------------------------------------------------------------------------
   
   In case of any problem yuo can apply directly to the author of the program:

                        c3c@uni-vologda.ac.ru

--------------------------------------------------------------------------------
This software is written in programming language Oberon-2.
Compiled by XDS (http://www.xds.ru) compiler.
--------------------------------------------------------------------------------
Java and all Java-based trademarks and logos 
are trademarks or registered trademarks of 
Sun Microsystems, Inc. in the United States 
and other countries.
