1 /*
   2  * Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Sun designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Sun in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  22  * CA 95054 USA or visit www.sun.com if you need additional information or
  23  * have any questions.
  24  */
  25 Instructions for running FontChecker 
  26 ------------------------------------
  28 FontChecker is a program designed to identify fonts that may cause JRE
  29 crashes. Such fonts may be corrupted files, or badly constructed fonts.
  30 Some crashes may also be due to bugs in the JRE's font code.
  31 This test is designed to run quickly and silently as part of the JRE
  32 installation process. It will only benefit users who install the JRE
  33 via that mechanism. It cannot guarantee to identify all "bad fonts" because
  34 the tests are minimal. Nor can it prevent problems due to fonts installed
  35 subsequently to the JRE's installation. However it does ensure that the
  36 vast majority of problem fonts are identified. This is important
  37 "RAS" functionality. It is targeted at the consumer/plugin market where
  38 there is substantial likelihood of end-users having installed software
  39 packages which may be delivered with fonts that are not up to commercial
  40 standards.
  42 The test is designed to be "fail safe". If the program fails to run
  43 properly it has no impact on the installer or on JRE execution.
  44 Thus there is no need to monitor successful execution of the test.
  46 The test is not a new "tool" in the sense of "javah" etc.
  47 The test is not designed to be user executable or visible, and should
  48 be unpacked by the installer into a temporary location, and executed
  49 once the rest of the JRE is installed (ie as a postinstall step), and
  50 can then be deleted from the temporary location once installation is
  51 complete. Not deleting the jar file before execution is complete is
  52 probably the sole reason that the installer may want to wait for
  53 the program to complete.
  55 The FontChecker application can be run directly from the jar 
  56 file with this command: 
  57         %java -jar fontchecker.jar -o <file>
  59 The output file is a required parameter in this version of the application.
  60 The JRE installer should use the above form, and use it to create an
  61 output file which must be named "badfonts.txt" and be placed into
  62 the JRE's lib\fonts directory eg:-
  64         java -jar fontchecker.jar -o "C:\Program Files\jre\lib\fonts\badfonts.txt"
  66 Note the lower case "badfonts.txt", and the string quotes because of the spaces
  67 in the path name.
  68 The location given here is an example and needs to be calculated at install
  69 time as $JREHOME\lib\fonts\badfonts.txt
  70 The location and name are important, because the JRE at runtime will
  71 look for this exactly located name and file.
  72 This location is private to that JRE instance. It will not affect
  73 any other JRE installed on the system.
  75 If running from a different directory than that containing the jar file,
  76 use the form containing the full path to the jar file, eg :
  78         java -jar C:\fc\fontchecker.jar -o "C:\Program Files\jre\lib\fonts\badfonts.txt"
  80 FontChecker application accepts following command line flags. 
  81 usage: java -jar fontchecker.jar -o outputfile
  82                         -v 
  84        -o is the name of the file to contains canonical path names of
  85           bad fonts that are identified. This file is not created if
  86           no bad fonts are found.
  88        -v verbose mode: print progress/warning messages. Not recommended
  89          for installer use.
  91        -w if running on Windows, use "javaw" to exec the sub-process.