annotate make/tools/src/build/tools/fontchecker/README.txt @ 0:37a05a11f281

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