|  | <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> | 
|  | <html> | 
|  | <head> | 
|  | <meta http-equiv="Content-Type" | 
|  | content="text/html; charset=iso-8859-1"> | 
|  | <meta http-equiv="Content-Style-Type" content="text/css2"> | 
|  | <title>ReadMe for ICU4J</title> | 
|  | <!-- | 
|  | ******************************************************************************* | 
|  | * Copyright (C) 2000-2006, International Business Machines Corporation and    * | 
|  | * others. All Rights Reserved.                                                * | 
|  | ******************************************************************************* | 
|  | --> | 
|  | <style type="text/css"> | 
|  | h3.doc { background: #CCCCFF } | 
|  | </style> | 
|  | </head> | 
|  | <body style="background-color: rgb(255, 255, 255);" lang="EN-US" | 
|  | link="#0000ff" vlink="#800080"> | 
|  | <h2>International Components for Unicode for Java (ICU4J)</h2> | 
|  | <h3>Read Me for ICU4J 3.6</h3> | 
|  | <hr size="2" width="100%"> | 
|  | <p><b>Release Date</b><br> | 
|  | October 1, 2006<br> | 
|  | </p> | 
|  | <p><b>Note:</b> This is major release of ICU4J.  It contains bug fixes | 
|  | and adds implementations of inherited API and introduces new API | 
|  | or functionality. | 
|  | </p> | 
|  | <p>For the most recent release, see the <a | 
|  | href="http://icu.sourceforge.net/download/"> ICU4J | 
|  | download site</a>. </p> | 
|  | <h3 class="doc">Contents</h3> | 
|  | <ul type="disc"> | 
|  | <li><a href="#introduction">Introduction to ICU4J</a></li> | 
|  | <li><a href="#news">What Is New In This Release?</a></li> | 
|  | <li><a href="#license">License Information</a></li> | 
|  | <li><a href="#PlatformDependencies">Platform Dependencies</a></li> | 
|  | <li><a href="#download">How to Download ICU4J</a></li> | 
|  | <li><a href="#WhatContain">The Structure and Contents of ICU4J</a></li> | 
|  | <li><a href="#API">Where to Get Documentation</a></li> | 
|  | <li><a href="#HowToInstallJavac">How to Install and Build</a></li> | 
|  | <li><a href="#HowToModularize">How to modularize ICU4J</a></li> | 
|  | <li><a href="#tryingout">Trying Out ICU4J</a></li> | 
|  | <li><a href="#resources">ICU4J Resource Information</a></li> | 
|  | <li><a href="#WhereToFindMore">Where to Find More Information</a></li> | 
|  | <li><a href="#SubmittingComments">Submitting Comments, Requesting | 
|  | Features and Reporting Bugs</a></li> | 
|  | </ul> | 
|  | <h3 class="doc"><a name="introduction"></a>Introduction to ICU4J</h3> | 
|  | <p>The International Components for Unicode (ICU) library provides | 
|  | robust and | 
|  | full-featured Unicode services on a wide variety of platforms. ICU | 
|  | supports the | 
|  | most current version of the Unicode standard, including support for | 
|  | supplementary characters (needed for GB 18030 repertoire support).</p> | 
|  | <p>Java provides a strong foundation for global programs, and IBM and | 
|  | the | 
|  | ICU team played a key role in providing globalization technology to | 
|  | Java. But because of its long release schedule, Java cannot always keep | 
|  | up with evolving standards. The ICU team continues to extend Java's | 
|  | Unicode and internationalization support, focusing on improving | 
|  | performance, | 
|  | keeping current with the Unicode standard, and providing richer APIs, | 
|  | while | 
|  | remaining as compatible as possible with the original Java text and | 
|  | internationalization API design.</p> | 
|  | <p>ICU4J is an add-on to the regular JVM that provides: | 
|  | </p> | 
|  | <ul> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/Collate_Intro.html"><b>Collation</b></a> | 
|  | – rule-based, up-to-date Unicode Collation Algorithm (UCA) sorting order<br> | 
|  |     For fast multilingual string comparison; faster | 
|  | and more complete than | 
|  | the JDK</li> | 
|  | <li><a href="http://icu.sourceforge.net/userguide/strings.html"><b>Supplementary | 
|  | Characters</b></a> – String manipulation and character properties<br> | 
|  |     Required for proper GB 18030 and JIS 213 | 
|  | repertoire support</li> | 
|  | <li><a href="http://icu.sourceforge.net/userguide/charsetDetection.html"><b>Charset | 
|  | Detection</b></a> – Recognition of various single and multibyte charsets<br> | 
|  |     Useful for recognizing untagged text data</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/unicodeSet.html"><b>UnicodeSet</b></a> | 
|  | – standard set operations optimized for sets of Unicode characters<br> | 
|  |     UnicodeSets can be built from string patterns | 
|  | using any Unicode properties.</li> | 
|  | <li><a href="http://icu.sourceforge.net/userguide/Transform.html"><b>Transforms</b></a> | 
|  | – a flexible mechanism for Unicode text conversions<br> | 
|  |     Including Full/Halfwidth conversions, | 
|  | Normalization, Case conversions, Hex | 
|  | conversions, and transliterations between scripts (50+ pairs)</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/normalization.html"><b>Unicode | 
|  | Normalization</b></a> – NFC, NFD, NFKD, NFKC<br> | 
|  |     For canonical text representations, needed for | 
|  | XML and the net</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/dateCalendar.html"><b>International | 
|  | Calendars</b></a> – Arabic, Buddhist, Hebrew, Japanese, Ethiopic, Islamic, Coptic and Chinese calendars<br> | 
|  |     Required for correct presentation of dates in | 
|  | certain countries</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/formatNumbers.html"><b>Number | 
|  | Format | 
|  | Enhancements</b></a> – Scientific Notation, Spelled-out, etc.<br> | 
|  |     Enhancements to the normal Java number | 
|  | formatting. The spell-out format is | 
|  | used for checks and similar documents</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/boundaryAnalysis.html"><b>Enhanced | 
|  | Word-Break Detection</b></a> – Rule-based, supports Thai<br> | 
|  |     Required for correct support of Thai</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/compression.html"><b>Unicode | 
|  | Text | 
|  | Compression</b></a> – Standard compression of Unicode text<br> | 
|  |     Suitable for large numbers of small fields, | 
|  | where LZW and similar schemes | 
|  | do not apply</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/userguide/conversion.html"><b>Charset Conversion</b></a> – Conversion to and from different charsets.<br> | 
|  |     Plugs into JDK's CharsetProvider Service Provider Interface (SPI)</li> | 
|  |  | 
|  | </ul> | 
|  | <blockquote> | 
|  | <p><b>Note:</b> We continue to provide assistance to Sun, and in some | 
|  | cases, ICU4J support has been rolled into a later release of Java. For | 
|  | example, the Thai word-break is now in Java 1.4. However, the most | 
|  | current and complete version is always found in ICU4J.</p> | 
|  | </blockquote> | 
|  | <!-- | 
|  |  | 
|  | <p><b>ICU4J is an add-on library that extends Java's globalization | 
|  |  | 
|  | technology.</b> Java provides a strong foundation for global | 
|  |  | 
|  | programs, but Java does not yet provide all the globalization | 
|  |  | 
|  | features that some products require.  IBM played a key role in | 
|  |  | 
|  | providing globalization technology to Sun for use in Java.  Over | 
|  |  | 
|  | the past seven years, the ICU team has continued to enhance and | 
|  |  | 
|  | extend this technology.  IBM makes this technology available | 
|  |  | 
|  | in Java through the ICU4J open-source project.</p> | 
|  |  | 
|  |  | 
|  |  | 
|  | <p>ICU4J provides the following tools: | 
|  |  | 
|  | <ul> | 
|  |  | 
|  | <li><b>Unicode Normalization</b> – NFC, NFD, NFKD, NFKC<br> | 
|  |  | 
|  |     Produces canonical text representations, needed for XML and the net. | 
|  |  | 
|  | <li><b>International Calendars</b> – Arabic, Buddhist, Hebrew, and Japanese<br> | 
|  |  | 
|  |     Required for correct presentation of dates in some countries. | 
|  |  | 
|  | <li><b>Number Format Enhancements</b> – Scientific Notation, Spelled-out Numbers<br> | 
|  |  | 
|  |     Enhances standard Java number formatting. The spelled-out format is used | 
|  |  | 
|  | for checks and similar documents. | 
|  |  | 
|  | <li><b>Enhanced word-break detection</b> – Rule-based, supports Thai<br> | 
|  |  | 
|  |     Required for correct support of Thai. | 
|  |  | 
|  | <li><b>Unicode Text Compression</b> – Standard compression of Unicode text<br> | 
|  |  | 
|  |     Suitable for large numbers of small fields, where LZW and similar schemes | 
|  |  | 
|  | do not apply. | 
|  |  | 
|  | <li><b>Collation</b> – Rule-based, up-to-date Unicode Collation Algorithm (UCA) sorting order<br> | 
|  |  | 
|  |     For fast multilingual string comparison | 
|  |  | 
|  | <li><b>Transforms</b> – Rule-based transformations of unicode data<br> | 
|  |  | 
|  |     Useful for analysis and transliteration | 
|  |  | 
|  | </ul> | 
|  |  | 
|  |  | 
|  |  | 
|  | In some cases, the above support has been rolled into a later release of | 
|  |  | 
|  | Java. For example, the Thai word-break is now in Java 1.4. However, the most | 
|  |  | 
|  | current and complete version of this support is always found in ICU4J. | 
|  |  | 
|  | --> | 
|  | <h3 class="doc"><a name="news"></a>What Is New In This Release?</h3> | 
|  | <ul> | 
|  | <li><strong>Unicode</strong>: ICU uses and supports Unicode 5.0, which is the | 
|  | latest major release of Unicode. Unicode 5.0 will be used in many | 
|  | operating systems and applications, and this version of ICU is important | 
|  | maintain interoperability with these new operating systems and applications. | 
|  | More information about Unicode 5.0 can be found in the <a href="http://www.unicode.org/press/pr-ucd5.0.html">Unicode press | 
|  | release</a>.</li> | 
|  | <li><strong>Locale Data</strong>: ICU uses and supports data from <a href="http://www.unicode.org/press/pr-cldr1.4.html">Common Locale Data | 
|  | Repository (CLDR) 1.4</a>, which includes many improvements in quality | 
|  | and quantity of data. There is 25% more CLDR locale data in 245 locales in ICU.</li> | 
|  | <li><strong>Globalization Preferences</strong>: A new flexible container for locale data was added.</li> | 
|  | <li><strong>Formatting</strong>: A <strong>preview</strong> of the flexible date/time format generator has been added. This allows multiple date and time format patterns to be generated that are valid for specific locales.</li> | 
|  | <li><strong>Charset Conversion</strong>: A <strong>preview</strong> of the ICU4J implementation of the java.nio.charset.Charset API was added.</li> | 
|  | </ul> | 
|  | <p><i><font color="red"><strong>Note</strong>: Do not use preview APIs in production code. They may change drastically in subsequent releases.</font></i></p> | 
|  |  | 
|  | <h3 class="doc"><a name="license"></a>License Information</h3> | 
|  | <p> | 
|  | The ICU projects (ICU4C and ICU4J) use the X license. The X | 
|  | license is <b>suitable for commercial use</b> and is a recommended free software license | 
|  | that is compatible with the GNU GPL license. This became | 
|  | effective with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J in | 
|  | mid-2001. All new ICU releases will adopt the X license; previous ICU | 
|  | releases continue to utilize the IPL (IBM Public License). Users | 
|  | of previous releases of ICU who want to adopt new ICU releases will | 
|  | need to accept the terms and conditions of the X license. | 
|  | </p> | 
|  | <p> | 
|  | The main effect of the change is to provide GPL compatibility. | 
|  | The X license is listed as GPL compatible, see the GNU page at | 
|  | <a href="http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses"> | 
|  | http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses</a>. | 
|  | This means that GPL projects can now use ICU code, it does <b>not</b> | 
|  | mean that projects using ICU become subject to GPL. | 
|  | </p> | 
|  | <p> | 
|  | The IBM version contains the essential text of the license, omitting the | 
|  | X-specific trademarks and copyright notices. The full copy of <a | 
|  | href="license.html">ICU's license</a> is included in the download | 
|  | package. | 
|  | </p> | 
|  | <h3 class="doc"><a name="PlatformDependencies"></a>Platform Dependencies</h3> | 
|  | <p> By default ICU4J depends on functionality that is only available | 
|  | in JDK 1.4.  We provide the ability to build a variant of ICU4J | 
|  | that will run on JDK 1.3, but not all build targets work on that | 
|  | platform. Currently 1.1.x and 1.2.x JVMs are unsupported and untested, | 
|  | and you use the components on these JVMs at your own risk.</p> | 
|  | <p> The reference platforms which we support and test ICU4J on are:</p> | 
|  | <ul> | 
|  | <li> WinXP, IBM JDK 1.5.0</li> | 
|  | <li> Solaris 5.9, Sun JDK 1.5.0</li> | 
|  | <li> AIX 5.2, IBM JDK 1.5.0</li> | 
|  | </ul> | 
|  | <p>Please use the most recent updates of the supported JDK versions.</p> | 
|  | <p>Additionally, we have built and tested ICU4J on the following <b>unsupported</b> | 
|  | platforms (note, only some build/test targets work on 1.3 platforms): | 
|  | </p> | 
|  | <ul> | 
|  | <li> WinXP / IBM JDK 1.4.2, 1.4.1, Sun JDK  1.5.0, 1.4.2</li> | 
|  | <li> Solaris 5.6 , Solaris 5.7 / Sun JDK 1.4.2, 1.4.1, 1.4.0</li> | 
|  | <li> Solaris 5.9 / Sun JDK 1.4.2, 1.4.1, 1.4.0</li> | 
|  | <li> AIX 5.2 / IBM JDK 1.4.2, 1.4.1</li> | 
|  | <li> AIX 5.1 / IBM JDK 1.4.2, 1.4.1</li> | 
|  | <li> RedHat Enterprise Linux 3/  IBM JDK 1.5.0, 1.4.2, Sun JDK  1.5.0, 1.4.2, 1.4.1, 1.4.0</li> | 
|  | <li> HP UX Sun JDK  1.5.0, 1.4.2</li> | 
|  | </ul> | 
|  | <h3 class="doc"><a name="download"></a>How to Download ICU4J</h3> | 
|  | <p>There are two ways to download the ICU4J releases. | 
|  | </p> | 
|  | <ul type="disc"> | 
|  | <li><b>Official Release Snapshot:</b><br> | 
|  | If you want to use ICU4J (as opposed to developing it), your best bet | 
|  | is to download an official, packaged version of the ICU4J source | 
|  | code. These versions are tested more thoroughly than day-to-day | 
|  | development builds, and they are packaged in jar files for convenient | 
|  | download. These packaged files can be found at the <a | 
|  | href="http://icu.sourceforge.net/download/">ICU Downloads page</a>. | 
|  | A packaged snapshot is named <b>icu4j-XXX-src.jar</b>, where XXX | 
|  | is the release version number. Please unjar this file. It | 
|  | will reconstruct the source directory.</li> | 
|  | </ul> | 
|  | <ul type="disc"> | 
|  | <li><b>CVS Source Repository:</b><br> | 
|  | If you are interested in developing features, patches, or bug fixes for | 
|  | ICU4J, you should probably be working with the latest version of the | 
|  | ICU4J source code. You will need to check the code out of our CVS | 
|  | repository to ensure that you have the most recent version of all of | 
|  | the files. There are several ways to do this. Please follow the | 
|  | directions that are contained on the <a | 
|  | href="http://www.ibm.com/software/globalization/icu/repository.jsp">Source | 
|  | Repository page</a> for details. | 
|  | </li> | 
|  | </ul> | 
|  | <p>For more details on how to download ICU4J directly from the web | 
|  | site, please see the ICU downloads page at <a | 
|  | href="http://icu.sourceforge.net/download/">http://icu.sourceforge.net/download/</a> | 
|  | </p> | 
|  | <h3 class="doc"><a name="WhatContain"></a>The Structure and Contents of | 
|  | ICU4J</h3> | 
|  | <p>Below, <b>$Root</b> is the placement of the icu directory in your | 
|  | file system, like | 
|  | "drive:\...\icu4j" in your environment. "drive:\..." stands for any | 
|  | drive and any directory on that drive that you chose to install icu4j | 
|  | into. </p> | 
|  | <p><b>Information and build files:</b></p> | 
|  | <table bgcolor="#ccccff" cellpadding="3" frame="void" width="623"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td align="right" bgcolor="#ffffff" valign="baseline"><b>readme.html</b><br> | 
|  | (this file)</td> | 
|  | <td bgcolor="#ffffff" valign="baseline">A description of ICU4J | 
|  | (International Components for Unicode for Java)</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">license.html</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">The X license, used by | 
|  | ICU4J</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">build.xml</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Ant build file. See <a | 
|  | href="#HowToInstallJavac">How to Install and Build</a> for more | 
|  | information</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p><b>The source directories mirror the package structure of the code.</b><br> | 
|  | <font color="red">Core</font> packages become part of the ICU4J jar | 
|  | file.<br> | 
|  | <font color="red">API</font> packages contain classes with supported | 
|  | API. <br> | 
|  | <font color="red">RichText</font> classes are Core and API, but can be | 
|  | removed from icu4j.jar, and can be built into their own jar.</p> | 
|  | <table bgcolor="#ccccff" border="0" cellpadding="3" frame="void" | 
|  | width="623"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/charset<br> | 
|  | <font color="red">Core, API (Preview)</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Packages that provide Charset conversion | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/dev<br> | 
|  | <font color="red">Non-Core, Non-API</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Packages used for | 
|  | internal development: | 
|  | <ul> | 
|  | <li>Data: data used by tests and in building ICU</li> | 
|  | <li>Demos: Calendar, Holiday, Break Iterator, Rule-based Number | 
|  | Format, Transformations<br> | 
|  | (See <a href="#tryingout">below</a> for more information about the | 
|  | demos.)</li> | 
|  | <li>Tests: API and coverage tests of all functionality.<br> | 
|  | For information about running the tests, see | 
|  | $Root/src/com/ibm/icu/dev/test/TestAll.java.</li> | 
|  | <li>Tools: tools used to build data tables, etc.</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/impl<br> | 
|  | <font color="red">Core, Non-API</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">These are utility classes | 
|  | used from different ICU4J core packages.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/lang<br> | 
|  | <font color="red">Core, API</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Character properties | 
|  | package.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/math<br> | 
|  | <font color="red">Core, API</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Additional math classes.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/text<br> | 
|  | <font color="red">Core, API</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Additional text classes. | 
|  | These add to, and in some cases replace, related core Java classes: | 
|  | <ul> | 
|  | <li>Arabic shaping </li> | 
|  | <li>Break iteration </li> | 
|  | <li>Date formatting </li> | 
|  | <li>Number formatting </li> | 
|  | <li>Transliteration </li> | 
|  | <li>Normalization </li> | 
|  | <li>String manipulation </li> | 
|  | <li>Collation </li> | 
|  | <li>String search </li> | 
|  | <li>Unicode compression </li> | 
|  | <li>Unicode sets </li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/icu/util<br> | 
|  | <font color="red">Core, API</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Additional utility | 
|  | classes: | 
|  | <ul> | 
|  | <li>Calendars - Gregorian, Buddhist, Coptic, Ethiopic, Hebrew, Islamic, Japanese, Chinese </li> | 
|  | <li>Holiday</li> | 
|  | <li>TimeZone</li> | 
|  | <li>VersionInfo</li> | 
|  | <li>Iteration</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/src/com/ibm/richtext<br> | 
|  | <font color="red">RichText</font></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Styled text editing | 
|  | package. This includes demos, tests, and GUIs for editing and | 
|  | displaying styled text. The richtext package provides a scrollable | 
|  | display, typing, arrow-key support, tabs, alignment and justification, | 
|  | word- and sentence-selection (by double-clicking and triple-clicking, | 
|  | respectively), text styles, clipboard operations (cut, copy and paste) | 
|  | and a log of changes for undo-redo. Richtext uses Java's TextLayout and | 
|  | complex text support (provided to Sun by the ICU4J team).</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p><b>Building ICU4J creates and populates the following directories:</b></p> | 
|  | <table bgcolor="#ccccff" cellpadding="3" frame="void" width="623"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/classes</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">contains all class files</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">$Root/doc</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">contains JavaDoc for all | 
|  | packages</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <br> | 
|  | <p><b>ICU4J data is stored in the following locations:</b></p> | 
|  | <table bgcolor="#ccccff" border="0" cellpadding="3" frame="void" | 
|  | width="623"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline"><code>com.ibm.icu.impl.data</code></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Holds data used by the | 
|  | ICU4J core packages (<code>com.ibm.icu.lang</code>, <code>com.ibm.icu.text</code>, | 
|  | <code>com.ibm.icu.util</code>, <code>com.ibm.icu.math</code> and | 
|  | <code>com.ibm.icu.text</code>). In particular, all resource | 
|  | information is stored here.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline"><code>com.ibm.icu.dev.data</code></th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Holds data that is not | 
|  | part of ICU4J core, but rather part of a test, sample, or demo.</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <br> | 
|  | <h3 class="doc"><a name="API"></a>Where to get Documentation</h3> | 
|  | <p>The <a href="http://icu.sourceforge.net/userguide/">ICU user's | 
|  | guide</a> contains lots of general information about ICU, in its C, | 
|  | C++, and Java incarnations.</p> | 
|  | <p>The complete API documentation for ICU4J (javadoc) is available on | 
|  | the ICU4J web site, and can be built from the sources: | 
|  | </p> | 
|  | <ul> | 
|  | <li><a href="http://icu.sourceforge.net/apiref/icu4j/">Index | 
|  | to all ICU4J API</a></li> | 
|  | <li><a href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/CharsetDetector.html">Charset Detector</a> – Detection of charset from a byte stream</li> | 
|  | <li>International Calendars – <a | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/BuddhistCalendar.html">Buddhist</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/ChineseCalendar.html">Chinese</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/CopticCalendar.html">Coptic</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/EthiopicCalendar.html">Ethiopic</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/GregorianCalendar.html">Gregorian</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/HebrewCalendar.html">Hebrew</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/IslamicCalendar.html">Islamic</a>, | 
|  | <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/JapaneseCalendar.html">Japanese</a>.</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/Normalizer.html">Unicode | 
|  | Normalization</a> – Canonical text representation for W3C.</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/NumberFormat.html">Number | 
|  | Format Enhancements</a> – Scientific Notation, Spelled out.</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/BreakIterator.html">Enhanced | 
|  | word-break detection</a> – Rule-based, supports Thai</li> | 
|  | <li><a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/Transliterator.html">Transliteration</a> | 
|  | – A general framework for onverting text from one format to another, | 
|  | e.g. Cyrillic to Latin, or Hex to Unicode. </li> | 
|  | <li>Unicode Text <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/UnicodeCompressor.html">Compression</a> | 
|  | & <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/UnicodeDecompressor.html">Decompression</a> | 
|  | – 2:1 compression on English Unicode text.</li> | 
|  | <li>Collation - <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/RuleBasedCollator.html">Rule-based | 
|  | sorting</a>, <a | 
|  | href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/StringSearch.html">Efficient | 
|  | multi-lingual searching</a> </li> | 
|  | </ul> | 
|  | <h3 class="doc"><a name="HowToInstallJavac"></a>How to Install and Build</h3> | 
|  | <p>To install ICU4J, simply place the prebuilt jar file <strong>icu4j.jar</strong> | 
|  | on your | 
|  | Java CLASSPATH. If you need Charset API support please place <strong>icu4j-charsets.jar</strong> on your class path. | 
|  | No other files are needed.</p> | 
|  | <p><b>Eclipse users:</b> See the ICU4J site for information on<a | 
|  | href="http://icu.sourceforge.net/docs/eclipse_howto/eclipse_howto.html"> | 
|  | how to configure Eclipse</a> to build ICU4J.</p> | 
|  | <p>To build ICU4J, you will need a Java2 JDK and the Ant build system. | 
|  | We strongly recommend using the Ant build system to build ICU4J. | 
|  | It's recommended to install both the JDK and Ant somewhere <em>outside</em> | 
|  | the ICU4J directory. For example, on Linux you might install these in | 
|  | /usr/local.</p> | 
|  | <ul> | 
|  | <li>Install a recent JDK, version 1.4.x will work.</li> | 
|  | <li>Install the <a href="http://ant.apache.org/"><strong>Ant</strong></a> | 
|  | build system. Ant is a portable, Java-based build system similar to | 
|  | make. ICU4J uses Ant because it introduces no other dependencies, it's | 
|  | portable, and it's easier to manage than a collection of makefiles. We | 
|  | currently build ICU4J using a single makefile on both Windows 9x and | 
|  | Linux using Ant. The build system requires Ant 1.6 or later. | 
|  | <p>Installing Ant is straightforward. Download it (see <a | 
|  | href="http://ant.apache.org/bindownload.cgi">http://ant.apache.org/bindownload.cgi</a>), | 
|  | extract it onto your system, set some environment variables, and add | 
|  | its bin directory to your path. For example: </p> | 
|  | <pre>    set JAVA_HOME=C:\jdk1.5.0<br>    set ANT_HOME=C:\ant<br>    set PATH=%PATH%;%ANT_HOME%\bin</pre> | 
|  | <p>See the current Ant documentation for details.</p> | 
|  | </li> | 
|  | </ul> | 
|  | <p>Once the JDK and Ant are installed, building is just a matter of | 
|  | typing <strong>ant</strong> in the ICU4J root directory. This causes | 
|  | the Ant build system to perform a build as specified by the file | 
|  | <strong>build.xml</strong>, located in the ICU4J root directory. You | 
|  | can give Ant options like -verbose, and you can specify targets. Ant | 
|  | will only build what's been changed and will resolve dependencies | 
|  | properly. For example:</p> | 
|  | <blockquote> | 
|  | <pre>F:\icu4j>ant tests<br>Buildfile: build.xml<br>Project base dir set to: F:\icu4j<br>Executing Target: core<br>Compiling 71 source files to F:\icu4j\classes<br>Executing Target: tests<br>Compiling 24 source files to F:\icu4j\classes<br>Completed in 19 seconds</pre> | 
|  | </blockquote> | 
|  | <i>Note: The above output is an example. The numbers are likely to be different with the current version ICU4J.</i> | 
|  | <p>The following are some targets that you can provide to <b>ant</b>. | 
|  | For more targets run <code>ant -projecthelp</code> or see the build.xml file.</p> | 
|  | <table bgcolor="#ccccff" border="0" cellpadding="3" frame="void" | 
|  | width="623"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">all</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Build all targets.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">core</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Build the main class | 
|  | files in the subdirectory <strong>classes</strong>. If no target is | 
|  | specified, core is assumed.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">tests</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Build the test class | 
|  | files.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">demos</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Build the demos.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">tools</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Build the tools.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">docs</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Run javadoc over the main | 
|  | class files, generating an HTML documentation tree in the subdirectory <strong>doc</strong>.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">jar</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Create a jar archive <strong>icu4j.jar</strong> | 
|  | in the root ICU4J directory containing the main class files.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">jarSrc</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Like the <strong>jar</strong> | 
|  | target, but containing only the source files. </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">jarDocs</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Like the <strong>jar</strong> | 
|  | target, but containing only the docs. </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">richedit</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Build the richedit core | 
|  | class files and tests. </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">richeditJar</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Create the richedit jar | 
|  | file (which contains only the richedit core class files). The file <strong>richedit.jar</strong> | 
|  | will be created in the <strong>./richedit</strong> subdirectory. Any | 
|  | existing file of that name will be overwritten.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">richeditZip</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Create a zip archive of | 
|  | the richedit docs and jar file for distribution. The zip file <strong>richedit.zip</strong> | 
|  | will be created in the <strong>./richedit</strong> subdirectory. Any | 
|  | existing file of that name will be overwritten.</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="right" bgcolor="#ffffff" valign="baseline">clean</th> | 
|  | <td bgcolor="#ffffff" valign="baseline">Remove all built targets, | 
|  | leaving the source.</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p>For more information, read the Ant documentation and the <strong>build.xml</strong> | 
|  | file.</p> | 
|  | <p>After doing a build it is a good idea to run all the icu4j tests by | 
|  | typing<br> | 
|  | <tt>"ant check"</tt> or | 
|  | "java | 
|  | -classpath $Root/classes | 
|  | com.ibm.icu.dev.test.TestAll -nothrow".</p> | 
|  | <p>(If you are allergic to build systems, as an alternative to using | 
|  | Ant you can build by running javac and javadoc directly. This | 
|  | is not recommended. You may have to manually create destination | 
|  | directories.)</p> | 
|  | <h3 class="doc"><a name="HowToModularize"></a>How to modularize ICU4J</h3> | 
|  | <p>Some clients may not wish to ship all of ICU4J with their | 
|  | application, since the application might only use a small part of | 
|  | ICU4J. | 
|  | ICU4J release 2.6 and later provide build options to build individual | 
|  | ICU4J 'modules' for a more compact distribution. | 
|  | The modules are based on a service and the APIs that define it, e.g., | 
|  | the normalizer module supports all the APIs of the Normalizer class | 
|  | (and some others). Tests can be run to verify that the APIs supported | 
|  | by the module function correctly. | 
|  | Because of internal code dependencies, a module contains extra classes | 
|  | that are not part of the module's core service API. Some or most of the | 
|  | APIs of these extra classes will not work. <b>Only the module's core | 
|  | service API is guaranteed.</b> Other APIs may work partially or not at | 
|  | all, so client code should avoid them.</p> | 
|  | <p> | 
|  | Individual modules are not built directly into their own separate jar | 
|  | files. Since their dependencies | 
|  | often overlap, using separate modules to 'add on' ICU4J functionality | 
|  | would result in | 
|  | unwanted duplication of class files. Instead, building a module causes | 
|  | a subset of ICU4J's | 
|  | classes to be built and put into ICU4J's standard build directory. | 
|  | After one or more module targets are built, the 'moduleJar' target can | 
|  | then be | 
|  | built, which packages the class files into a 'module jar.' Other than | 
|  | the fact that it | 
|  | contains fewer class files, little distinguishes this jar file from a | 
|  | full ICU4J jar file, | 
|  | and in fact they share the same name.</p> | 
|  | <p> | 
|  | Currently ICU4J can be divided into the following modules: | 
|  | </p> | 
|  | <p><b>Key:</b></p> | 
|  | <table bgcolor="#ccccff" cellpadding="3" frame="void" width="623"> | 
|  | <tbody> | 
|  | <tr> | 
|  |  | 
|  | <th align="left" valign="baseline"><b>Module Name</b></th> | 
|  | <th align="left" valign="baseline"><b>Ant Targets</b></th> | 
|  | <th align="left" valign="baseline"><b>Test Package Supported</b></th> | 
|  | <th align="right" valign="baseline"><b>Size‡</b></th> | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  |  | 
|  | <td colspan="4"> | 
|  | <table> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">Package*</td> | 
|  | <td valign="baseline">Main Classes† </td> | 
|  | </tr> | 
|  | </tbody> | 
|  |  | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <b><font size="2">* com.ibm. should be prepended to the package names | 
|  | listed. | 
|  | <br> | 
|  | † Class name in bold indicates core service API. Only APIs in these classes are | 
|  | fully supported. | 
|  | <br> | 
|  | ‡ Sizes are of the compressed jar file containing only this module. | 
|  | These sizes are approximate for release 3.6. | 
|  | </font></b> | 
|  | <p><b>Modules:</b></p> | 
|  |  | 
|  | <table bgcolor="#ccccff" cellpadding="3" frame="void" width="623"> | 
|  |  | 
|  | <tbody> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">Normalizer</th> | 
|  | <td align="left" valign="baseline">normalizer, normalizerTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.normalizer</td> | 
|  | <td align="right" valign="baseline">698 KB</td> | 
|  |  | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  |  | 
|  | UCharacter, | 
|  | UCharacterCategory, | 
|  | UCharacterDirection, | 
|  | UCharacterEnums, | 
|  | UProperty, | 
|  | UScript | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | <b>Normalizer</b>, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | RuleBasedCollatior, | 
|  | RuleBasedTransliterator, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | <b>UCharacterIterator</b>, | 
|  | <b>UForwardCharacterIterator</b>, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | UTF16 | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | Freezable, | 
|  | RangeValueIterator, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">Collator</th> | 
|  | <td align="left" valign="baseline">collator, collatorTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.collator</td> | 
|  | <td align="right" valign="baseline">2,031 KB</td> | 
|  |  | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  |  | 
|  | UCharacter, | 
|  | UCharacterCategory, | 
|  | UCharacterEnums, | 
|  | UProperty, | 
|  | UScript | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  | BreakDictionary, | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | <b>CollationElementIterator</b>, | 
|  | <b>CollationKey</b>, | 
|  | <b>Collator</b>, | 
|  | DictionaryBasedBreakIterator, | 
|  | <b>Normalizer</b>, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | RuleBasedBreakIterator, | 
|  | <b>RuleBasedCollator</b>, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | <b>UCharacterIterator</b>, | 
|  | <b>UForwardCharacterIterator</b>, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | UTF16 | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | CompactByteArray, | 
|  | Freezable, | 
|  | RangeValueIterator, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">Calendar</th> | 
|  | <td align="left" valign="baseline">calendar, calendarTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.calendar</td> | 
|  | <td align="right" valign="baseline">2,006 KB</td> | 
|  |  | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  |  | 
|  | UCharacter, | 
|  | UCharacterCategory, | 
|  | UCharacterEnums, | 
|  | UProperty, | 
|  | UScript | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.math:</td> | 
|  | <td valign="baseline"> | 
|  | <b>BigDecimal</b>, | 
|  | MathContext | 
|  | </td> | 
|  | </tr> | 
|  |  | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | <b>ChineseDateFormat</b>, | 
|  | <b>ChineseDateFormatSymbols</b>, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | <b>DateFormat</b>, | 
|  | <b>DateFormatSymbols</b>, | 
|  | <b>DecimalFormat</b>, | 
|  | <b>DecimalFormatSymbols</b>, | 
|  | MessageFormat, | 
|  | Normalizer, | 
|  | NumberFormat, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | RuleBasedCollator, | 
|  | RuleBasedNumberFormat, | 
|  | RuleBasedTransliterator, | 
|  | <b>SimpleDateFormat</b>, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | <b>UCharacterIterator</b>, | 
|  | UFormat, | 
|  | <b>UForwardCharacterIterator</b>, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | UTF16 | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | <b>BuddhistCalendar</b>, | 
|  | ByteArrayWrapper, | 
|  | <b>Calendar</b>, | 
|  | CaseInsensitiveString, | 
|  | <b>ChineseCalendar</b>, | 
|  | <b>CopticCalendar</b>, | 
|  | <b>Currency</b>, | 
|  | CurrencyAmount, | 
|  | <b>DateRule</b>, | 
|  | <b>EasterHoliday</b>, | 
|  | <b>EthiopicCalendar</b>, | 
|  | Freezable, | 
|  | <b>GregorianCalendar</b>, | 
|  | <b>HebrewCalendar</b>, | 
|  | <b>HebrewHoliday</b>, | 
|  | <b>Holiday</b>, | 
|  | <b>IslamicCalendar</b>, | 
|  | <b>JapaneseCalendar</b>, | 
|  | Measure, | 
|  | MeasureUnit, | 
|  | <b>RangeDateRule</b>, | 
|  | RangeValueIterator, | 
|  | <b>SimpleDateRule</b>, | 
|  | <b>SimpleHoliday</b>, | 
|  | <b>SimpleTimeZone</b>, | 
|  | StringTokenizer, | 
|  | <b>TimeZone</b>, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">BreakIterator</th> | 
|  | <td align="left" valign="baseline">breakIterator, | 
|  | breakIteratorTests</td> | 
|  |  | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.breakiterator</td> | 
|  | <td align="right" valign="baseline">1,893 KB</td> | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  |  | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  | UCharacter, | 
|  | UCharacterCategory, | 
|  | UCharacterDirection, | 
|  | UCharacterEnums, | 
|  | UProperty, | 
|  | UScript | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  |  | 
|  | <td valign="baseline"> | 
|  | <b>BreakDictionary</b>, | 
|  | <b>BreakIterator</b>, | 
|  | CanonicalIterator, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | <b>DictionaryBasedBreakIterator</b>, | 
|  | Normalizer, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | <b>RuleBasedBreakIterator</b>, | 
|  | RuleBasedCollator, | 
|  | RuleBasedTransliterator, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | UCharacterIterator, | 
|  | UForwardCharacterIterator, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | UTF16</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  |  | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | CompactByteArray, | 
|  | Freezable, | 
|  | RangeValueIterator, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  |  | 
|  | <th align="left" valign="baseline">Basic Properties</th> | 
|  | <td align="left" valign="baseline">propertiesBasic, | 
|  | propertiesBasicTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.lang</td> | 
|  | <td align="right" valign="baseline">802 KB</td> | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  |  | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  | <b>UCharacter</b>, | 
|  | <b>UCharacterCategory</b>, | 
|  | <b>UCharacterDirection</b>, | 
|  | <b>UCharacterEnums</b>, | 
|  | <b>UProperty</b>, | 
|  | <b>UScript</b>, | 
|  | <b>UScriptRun</b> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  | BreakDictionary, | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | DictionaryBasedBreakIterator, | 
|  | Normalizer, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | RuleBasedBreakIterator, | 
|  | RuleBasedCollator, | 
|  | RuleBasedTransliterator, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | UCharacterIterator, | 
|  | UForwardCharacterIterator, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | <b>UTF16</b> | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | CompactByteArray, | 
|  | Freezable, | 
|  | RangeValueIterator, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">Full Properties</th> | 
|  | <td align="left" valign="baseline">propertiesFull, | 
|  | propertiesFullTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.lang</td> | 
|  | <td align="right" valign="baseline">1,837 KB</td> | 
|  |  | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  |  | 
|  | <b>UCharacter</b>, | 
|  | <b>UCharacterCategory</b>, | 
|  | <b>UCharacterDirection</b>, | 
|  | <b>UCharacterEnums</b>, | 
|  | <b>UProperty</b>, | 
|  | <b>UScript</b>, | 
|  | <b>UScriptRun</b> | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  | BreakDictionary, | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | DictionaryBasedBreakIterator, | 
|  | <b>Normalizer</b>, | 
|  | RawCollationKey, | 
|  | <b>Replaceable</b>, | 
|  | <b>ReplaceableString</b>, | 
|  | RuleBasedBreakIterator, | 
|  | RuleBasedCollator, | 
|  | RuleBasedTransliterator, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | <b>UCharacterIterator</b>, | 
|  | <b>UForwardCharacterIterator</b>, | 
|  | <b>UnicodeFilter</b>, | 
|  | <b>UnicodeMatcher</b>, | 
|  | <b>UnicodeSet</b>, | 
|  | <b>UnicodeSetIterator</b>, | 
|  | <b>UTF16</b> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | CompactByteArray, | 
|  | Freezable, | 
|  | <b>RangeValueIterator</b>, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | <b>ValueIterator</b>, | 
|  | <b>VersionInfo</b> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">Formatting</th> | 
|  |  | 
|  | <td align="left" valign="baseline">format, formatTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.format</td> | 
|  | <td align="right" valign="baseline">3,207 KB</td> | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  |  | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  | UCharacter, | 
|  | UCharacterCategory, | 
|  | UCharacterEnums, | 
|  | UProperty, | 
|  | UScript | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.math:</td> | 
|  |  | 
|  | <td valign="baseline"> | 
|  | <b>BigDecimal</b> | 
|  | MathContext | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  |  | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | ChineseDateFormat, | 
|  | ChineseDateFormatSymbols, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | <b>DateFormat</b>, | 
|  | <b>DateFormatSymbols</b>, | 
|  | <b>DecimalFormat</b>, | 
|  | <b>DecimalFormatSymbols</b>, | 
|  | MeasureFormat, | 
|  | MessageFormat, | 
|  | Normalizer, | 
|  | <b>NumberFormat</b>, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | RuleBasedCollator, | 
|  | <b>RuleBasedNumberFormat</b>, | 
|  | RuleBasedTransliterator, | 
|  | <b>SimpleDateFormat</b>, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | <b>UCharacterIterator</b>, | 
|  | UFormat, | 
|  | <b>UForwardCharacterIterator</b>, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | UTF16 | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | <b>BuddhistCalendar</b>, | 
|  | ByteArrayWrapper, | 
|  | <b>Calendar</b>, | 
|  | CaseInsensitiveString, | 
|  | <b>ChineseCalendar</b>, | 
|  | <b>CopticCalendar</b>, | 
|  | <b>Currency</b>, | 
|  | CurrencyAmount, | 
|  | <b>EthiopicCalendar</b>, | 
|  | Freezable, | 
|  | <b>GregorianCalendar</b>, | 
|  | <b>HebrewCalendar</b>, | 
|  | <b>IslamicCalendar</b>, | 
|  | <b>JapaneseCalendar</b>, | 
|  | Measure, | 
|  | MeasureUnit, | 
|  | <b>RangeValueIterator</b>, | 
|  | <b>SimpleTimeZone</b>, | 
|  | StringTokenizer, | 
|  | <b>TimeZone</b>, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  |  | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <th align="left" valign="baseline">StringPrep, IDNA</th> | 
|  | <td align="left" valign="baseline">stringPrep, stringPrepTests</td> | 
|  |  | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.stringprep</td> | 
|  | <td align="right" valign="baseline">725 KB</td> | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  |  | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  | UCharacter, | 
|  | UCharacterCategory, | 
|  | UCharacterDirection, | 
|  | UCharacterEnums, | 
|  | UProperty, | 
|  | UScript | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  |  | 
|  | <td valign="baseline"> | 
|  | BreakIterator, | 
|  | CanonicalIterator, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | <b>IDNA</b>, | 
|  | Normalizer, | 
|  | RawCollationKey, | 
|  | Replaceable, | 
|  | ReplaceableString, | 
|  | RuleBasedCollator, | 
|  | RuleBasedTransliterator, | 
|  | <b>StringPrep</b>, | 
|  | <b>StringParseException</b>, | 
|  | SymbolTable, | 
|  | Transliterator, | 
|  | UCharacterIterator, | 
|  | UForwardCharacterIterator, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | UnicodeSet, | 
|  | UnicodeSetIterator, | 
|  | UTF16 | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  |  | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | Freezable, | 
|  | RangeValueIterator, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | ValueIterator, | 
|  | VersionInfo | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  |  | 
|  | <th align="left" valign="baseline">Transforms</th> | 
|  | <td align="left" valign="baseline">transliterator, | 
|  | transliteratorTests</td> | 
|  | <td align="left" valign="baseline">com.ibm.icu.dev.test.translit</td> | 
|  | <td align="right" valign="baseline">988 KB</td> | 
|  | </tr> | 
|  | <tr bgcolor="#ffffff"> | 
|  |  | 
|  | <td colspan="4" valign="top"> | 
|  | <table border="0" cellpadding="5"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td valign="baseline">icu.lang:</td> | 
|  | <td valign="baseline"> | 
|  | <b>UCharacter</b>, | 
|  | <b>UCharacterCategory</b>, | 
|  | <b>UCharacterDirection</b>, | 
|  | <b>UCharacterEnums</b>, | 
|  | <b>UProperty</b>, | 
|  | <b>UScript</b>, | 
|  | <b>UScriptRun</b> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.text:</td> | 
|  | <td valign="baseline"> | 
|  | <b>BreakDictionary</b>, | 
|  | <b>BreakIterator</b>, | 
|  | CanonicalIterator, | 
|  | CollationElementIterator, | 
|  | CollationKey, | 
|  | Collator, | 
|  | <b>DictionaryBasedBreakIterator</b>, | 
|  | <b>Normalizer</b>, | 
|  | RawCollationKey, | 
|  | <b>Replaceable</b>, | 
|  | <b>ReplaceableString</b>, | 
|  | <b>RuleBasedBreakIterator</b>, | 
|  | RuleBasedCollator, | 
|  | RuleBasedTransliterator, | 
|  | SymbolTable, | 
|  | <b>Transliterator</b>, | 
|  | <b>UCharacterIterator</b>, | 
|  | <b>UForwardCharacterIterator</b>, | 
|  | UnicodeFilter, | 
|  | UnicodeMatcher, | 
|  | <b>UnicodeSet</b>, | 
|  | <b>UnicodeSetIterator</b>, | 
|  | <b>UTF16</b> | 
|  |  | 
|  | </td> | 
|  | <td> <br> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td valign="baseline">icu.util:</td> | 
|  | <td valign="baseline"> | 
|  | ByteArrayWrapper, | 
|  | CaseInsensitiveString, | 
|  | CompactByteArray, | 
|  | Freezable, | 
|  | <b>RangeValueIterator</b>, | 
|  | StringTokenizer, | 
|  | ULocale, | 
|  | UResourceBundle, | 
|  | UResourceTypeMismatchException, | 
|  | <b>ValueIterator</b>, | 
|  | <b>VersionInfo</b> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <!-- tr> | 
|  |  | 
|  | <th align="left" valign="baseline"><b>Module Name</b></th> | 
|  |  | 
|  | <th align="left" valign="baseline"><b>Ant Targets</b></th> | 
|  |  | 
|  | <th align="left" valign="baseline"><b>Test Package Supported</b></th> | 
|  |  | 
|  | <th align="right" valign="baseline"><b>Size</b></th> | 
|  |  | 
|  | </tr --> | 
|  | </tbody> | 
|  | </table> | 
|  | <p>Building any of these modules is as easy as specifying a build | 
|  | target to the Ant build system, e.g: | 
|  | <br> | 
|  | To build a module that contains only the Normalizer API: </p> | 
|  | <ol> | 
|  | <li> Build the module. <br> | 
|  | <code> ant normalizer </code> </li> | 
|  | <li> Build the jar containing the module. <br> | 
|  | <code>ant moduleJar </code> </li> | 
|  | <li> Build the tests for the module. <br> | 
|  | <code> ant normalizerTests </code> </li> | 
|  | <li> Run the tests and verify that the self tests pass. <br> | 
|  | <code> java -classpath $icu4j_root/classes | 
|  | com.ibm.icu.dev.test.TestAll -nothrow -w </code> </li> | 
|  | </ol> | 
|  | If more than one module is required, the module build targets can be | 
|  | concatenated, e.g: | 
|  | <ol> | 
|  | <li> Build the modules. <br> | 
|  | <code> ant normalizer collator </code> </li> | 
|  | <li> Build the jar containing the modules. <br> | 
|  | <code>ant moduleJar </code> </li> | 
|  | <li> Build the tests for the module. <br> | 
|  | <code> ant normalizerTests collatorTests </code> </li> | 
|  | <li> Run the tests and verify that they pass. <br> | 
|  | <code> java -classpath $icu4j_root/classes | 
|  | com.ibm.icu.dev.test.TestAll -nothrow -w </code> </li> | 
|  | </ol> | 
|  | The jar should be built before the tests, since for some targets | 
|  | building the tests will cause additional classes to be compiled that | 
|  | are not strictly necessary for the module itself. | 
|  | <h5> Notes: </h5> | 
|  | <ul> | 
|  | <li>Regardless of whether ICU4J is built as a whole or as modules, | 
|  | the jar file produced is named <em>icu4j.jar</em>.</li> | 
|  | <li>To ascertain if an icu4j.jar contains all of ICU4J or not, please | 
|  | see the manifest file in the jar</li> | 
|  | <li>The target moduleJar does not depend on any other target. It just | 
|  | creates a jar of all class files under | 
|  | $icu4j_root/classes/com/ibm/icu/, excluding the classs files in | 
|  | $icu4j_root/classes/com/ibm/icu/dev folder</li> | 
|  | <li>The list of module build targets can be obtained by running the | 
|  | command: <code>ant -projecthelp</code></li> | 
|  | </ul> | 
|  | <h3 class="doc"><a name="tryingout"></a>Trying Out ICU4J</h3> | 
|  | <p><strong>Note:</strong> the demos provided with ICU4J are for the | 
|  | most part undocumented. This list can show you where to look, but | 
|  | you'll | 
|  | have to experiment a bit. The demos (with the | 
|  | exception of richedit) are <strong>unsupported</strong> and may change | 
|  | or disappear without notice.</p> | 
|  | <p>The icu4j.jar file contains only the core ICU4J classes, not the | 
|  | demo classes, so unless you build ICU4J there is little to try out. | 
|  | </p> | 
|  | <h4>Charset</h4> | 
|  | To try out the <strong>Charset</strong> package, build <strong>icu4j.jar</strong> and <strong>icu4j-charsets.jar</strong> using 'jar' target. | 
|  | You can use the charsets by placing these files on your classpath. | 
|  | <blockquote><tt>java -cp $Root/icu4j.jar:$Root/icu4j-charsets.jar <your program></tt></blockquote> | 
|  | <h4>Rich Edit</h4> | 
|  | To try out the <strong>richedit</strong> package, first build the | 
|  | richeditJar target. | 
|  | This is a 'runnable' jar file. To run the richedit demo, type: | 
|  | <blockquote><tt>java -jar $Root/richedit/richedit.jar</tt></blockquote> | 
|  | This will present an empty edit pane with an awt interface. | 
|  | <p>With a fuller command line you can try out other options, for | 
|  | example:</p> | 
|  | <blockquote><tt>java -classpath $Root/richedit/richedit.jar | 
|  | com.ibm.richtext.demo.EditDemo [-swing][file]</tt></blockquote> | 
|  | <p>This will use an awt GUI, or a swing GUI if | 
|  | <tt>-swing</tt> is passed on the command line. It will open a text | 
|  | file if one is provided, otherwise it will open a blank page. Click | 
|  | to type.</p> | 
|  | <p> | 
|  | You can add tabs to the tab ruler by clicking in the ruler while | 
|  | holding down the control key. | 
|  | Clicking on an existing tab changes between left, right, center, and | 
|  | decimal tabs. Dragging | 
|  | a tab moves it, dragging it off the ruler removes it.</p> | 
|  | <p> | 
|  | You can experiment with complex text by using the keymap functions. | 
|  | Please note that these are mainly for demo purposes, for real work | 
|  | with Arabic or Hebrew you will want to use an input method. You will | 
|  | need to use a font that supports Arabic or Hebrew, 'Lucida Sans' | 
|  | (provided | 
|  | with Java) supports these languages.</p> | 
|  | <h4>Other demos</h4> | 
|  | <p>The other demo programs are <strong>not supported</strong> and | 
|  | exist only to let you | 
|  | experiment with the ICU4J classes. First, build ICU4J using <tt>ant all</tt>. | 
|  | Then try | 
|  | one of the following: | 
|  | </p> | 
|  | <ul> | 
|  | <li><tt>java -classpath classes | 
|  | com.ibm.icu.dev.demo.calendar.CalendarApp</tt> </li> | 
|  | <li><tt>java -classpath classes | 
|  | com.ibm.icu.dev.demo.holiday.HolidayCalendarDemo</tt> </li> | 
|  | <li><tt>java -classpath classes | 
|  | com.ibm.icu.dev.demo.rbbi.TextBoundDemo</tt><br> | 
|  | (Click in the text, then use <tt>ctrl-N</tt> and <tt>ctrl-P</tt> to | 
|  | select the next or previous block of text.) </li> | 
|  | <li><tt>java -classpath classes com.ibm.icu.dev.demo.rbnf.RbnfDemo</tt> | 
|  | </li> | 
|  | <li><tt>java -classpath classes com.ibm.icu.dev.demo.translit.Demo</tt> | 
|  | </li> | 
|  | </ul> | 
|  | <h3 class="doc"><a name="resources">ICU4J Resource Information</a></h3> | 
|  | Starting with release 2.1, ICU4J includes its own | 
|  | resource information | 
|  | which is completely independent of the JDK resource information. (Note, | 
|  | in ICU4J 3.2 and 3.4, time zone information still depends on the | 
|  | underlying JDK). The | 
|  | new ICU4J information is equivalent to the information in ICU4C and | 
|  | many | 
|  | resources are, in fact, the same binary files that ICU4C uses. | 
|  | <p> | 
|  | By default the ICU4J distribution includes all of the standard resource | 
|  | information. It is located under the directory com/ibm/icu/impl/data. | 
|  | Depending on the service, the data is in different locations and in | 
|  | different formats. <strong>Note:</strong> This will continue to change | 
|  | from release to release, so clients should not depend on the exact | 
|  | organization | 
|  | of the data in ICU4J.</p> | 
|  | <ul> | 
|  | <li>The primary <b>locale data</b> is under the directory <tt>icudt36b</tt>, | 
|  | as a set of <tt>".res"</tt> files whose names are the locale identifiers. | 
|  | Locale naming is documented the <code>com.ibm.icu.util.ULocale</code> | 
|  | class, and the use of these names in searching for resources is documented | 
|  | in <code>java.util.ResourceBundle</code>. | 
|  | </li> | 
|  | <li>The <b>collation data</b> is under the directory <tt>icudt36b/coll</tt>, | 
|  | as a set of <tt>".res"</tt> files.</li> | 
|  | <li>The <b>rule-based transliterator data</b> is under the directory | 
|  | <tt>icudt36b/translit</tt> as a set of <tt>".res"</tt> files.  (<b>Note:</b> the | 
|  | Han transliterator test data is no longer included in the core icu4j.jar | 
|  | file by default.)</li> | 
|  | <li>The <b>rule-based number format data</b> is under the directory | 
|  | <tt>icudt36b/rbnf</tt> as a set of <tt>".res"</tt> files. | 
|  | <li>The <b>break iterator data</b> is directly under the data | 
|  | directory, as a set of <tt>".brk"</tt> files, named according to the | 
|  | type of break and the locale where there are locale-specific versions.</li> | 
|  | <li>The <b>holiday data</b> is under the <tt>data</tt> directory, | 
|  | as a set of <tt>".class"</tt> files, named <tt>"HolidayBundle_"</tt> | 
|  | followed by the locale ID.</li> | 
|  | <li>The <b>character property data</b> as well as assorted <b>normalization | 
|  | data</b> and default <b>unicode collation algorithm (UCA) data</b> | 
|  | is found under the <tt>data</tt> directory as a set of <tt>".icu"</tt> | 
|  | files. </li> | 
|  | </ul> | 
|  | <p> | 
|  | Some of the data files alias or otherwise reference data from other | 
|  | data files. One reason for this is because some locale names have | 
|  | changed. For example, <tt>he_IL</tt> used to be <tt>iw_IL</tt>. In | 
|  | order to support both names but not duplicate the data, one of the | 
|  | resource files refers to the other file's data. In other cases, a | 
|  | file may alias a portion of another file's data in order to save | 
|  | space. Currently ICU4J provides no tool for revealing these | 
|  | dependencies.</p> | 
|  | <blockquote><strong>Note:</strong>  Java's <code>Locale</code> class | 
|  | silently converts the language code <tt>"he"</tt> to <tt>"iw"</tt> | 
|  | when you construct the Locale (for versions of Java through Java 5). Thus | 
|  | Java cannot be used to locate resources that use the <tt>"he"</tt> | 
|  | language code. ICU, on the other hand, does not perform this | 
|  | conversion in ULocale, and instead uses aliasing in the locale data to | 
|  | represent the same set of data under different locale | 
|  | ids.</blockquote> | 
|  | <p> | 
|  | Resource files that use locale ids form a hierarchy, with up to four | 
|  | levels: a root, language, region (country), and variant. Searches for | 
|  | locale data attempt to match as far down the hierarchy as possible, | 
|  | for example, <tt>"he_IL"</tt> will match <tt>he_IL</tt>, but | 
|  | <tt>"he_US"</tt> will match <tt>he</tt> (since there is no <tt>US</tt> | 
|  | variant for he, and <tt>"xx_YY</tt> will match root (the | 
|  | default fallback locale) since there is no <tt>xx</tt> language code | 
|  | in the locale hierarchy. Again, see | 
|  | <code>java.util.ResourceBundle</code> for more information. | 
|  | </p> | 
|  | <p> | 
|  | <strong>Currently ICU4J provides no tool for revealing these | 
|  | dependencies</strong> between data files, so trimming the data | 
|  | directly in the ICU4J project is a hit-or-miss affair. The key point | 
|  | when you remove data is to make sure to remove all dependencies on | 
|  | that data as well. For example, if you remove <tt>he.res</tt>, you | 
|  | need to remove <tt>he_IL.res</tt>, since it is lower in the hierarchy, | 
|  | and you must remove iw.res, since it references <tt>he.res</tt>, and | 
|  | <tt>iw_IL.res</tt>, since it depends on it (and also references | 
|  | <tt>he_IL.res</tt>). | 
|  | </p> | 
|  | <p> | 
|  | Unfortunately, the jar tool in the JDK provides no way to remove items | 
|  | from a jar file. Thus you have to extract the resources, remove the | 
|  | ones you don't want, and then create a new jar file with the remining | 
|  | resources. See the jar tool information for how to do this. Before | 
|  | 'rejaring' the files, be sure to thoroughly test your application with | 
|  | the remaining resources, making sure each required resource is | 
|  | present. | 
|  | </p> | 
|  | <h4>Using additional resource files with ICU4J</h4> | 
|  | <blockquote> | 
|  | <table cellpadding="3" frame="border" rules="none" width="50%"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td><b><font color="red" size="+1">Warning:</font> Resource | 
|  | file formats can change across releases of ICU4J!</b></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>The format of ICU4J resources is not part of the API. | 
|  | Clients who develop their own resources for use with ICU4J should be | 
|  | prepared to | 
|  | regenerate them when they move to new releases of ICU4J.</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </blockquote> | 
|  | <p> | 
|  | We are still developing ICU4J's resource mechanism. Currently it | 
|  | is not possible to mix icu's new binary <tt>.res</tt> | 
|  | resources | 
|  | with traditional java-style <tt>.class</tt> or <tt>.txt</tt> | 
|  | resources. We might | 
|  | allow for this in a future release, but since the resource data and | 
|  | format is not formally | 
|  | supported, you run the risk of incompatibilities with future releases | 
|  | of ICU4J. | 
|  | </p> | 
|  | <p> | 
|  | Resource data in ICU4J is checked in to the repository as a jar file | 
|  | containing the resource binaries, <tt>icudata.jar</tt>. This | 
|  | means that inspecting the contents of these resources is difficult. | 
|  | They currently are compiled from ICU4C <tt>.txt</tt> file data. You | 
|  | can view the contents of the ICU4C text resource files to understand | 
|  | the contents of the ICU4J resources. | 
|  | </p> | 
|  | <p> | 
|  | The files in <tt>icudata.jar</tt> get extracted to <tt>com/ibm/icu/impl/data</tt> | 
|  | in | 
|  | the build directory when the 'core' target is built. | 
|  | Building the <tt>'resources'</tt> target will force the | 
|  | resources to once again be extracted. Extraction will | 
|  | overwrite any corresponding resource files already in that directory. | 
|  | </p> | 
|  | <h4><a name="resourcesICU4C">Building ICU4J Resources from ICU4C</a></h4> | 
|  | <h5>Requirements</h5> | 
|  | <ul> | 
|  | <li><a | 
|  | href="http://www.ibm.com/software/globalization/icu/downloads.jsp">ICU4C</a></li> | 
|  | <li>Compilers and tools required for building <a | 
|  | href="http://dev.icu-project.org/cgi-bin/viewcvs.cgi/icu/readme.html?view=co#HowToBuild">ICU4C</a>.</li> | 
|  | <li>Java SDK version 1.4.0 or above.</li> | 
|  | <li>Perl version 5 or above.</li> | 
|  | </ul> | 
|  | <h5> Procedure</h5> | 
|  | <ol> | 
|  | <li> Download and build ICU4C on a Windows machine. For instructions on | 
|  | downloading and building ICU4C, please click <a | 
|  | href="http://dev.icu-project.org/cgi-bin/viewcvs.cgi/icu/readme.html?view=co#HowToBuild">here</a>.</li> | 
|  | <li> Change directory to <i>$icu_root</i>/source/tools/genrb </li> | 
|  | <li> Launch gendtjar.pl from that directory itself with the command <br> | 
|  | gendtjar.pl --icu-root=<i>$icu_root</i> --jar=<i>$jdk_home/bin</i> | 
|  | --icu4j-root=<i>$icu4j_root</i> --version=<i>$icu_version</i> <br> | 
|  | e.g: gendtjar.pl --icu-root=\work\icu --jar=\jdk1.4.1\bin | 
|  | --icu4j-root=\work\icu4j --version=3.0 <br> | 
|  | Execution of gendtjar.pl script will create the required jar files in | 
|  | the $icu_root\source\tools\genrb\temp directory.</li> | 
|  | <li> Move icudata.jar to <i>$icu4j_root</i>/src/com/ibm/icu/impl/data | 
|  | directory.</li> | 
|  | <li> Move testdata.jar to <i>$icu4j_root</i>/src/com/ibm/dev/data | 
|  | directory.</li> | 
|  | <li> Build resources target of ant to unpack the jar files with the | 
|  | following command. <br> | 
|  | <i>$ant_home</i>/bin/ant resources</li> | 
|  | </ol> | 
|  | <h5> Generating Data from CLDR </h5> | 
|  | <i> Note: This procedure assumes that all 3 sources are in sibling directories</i> | 
|  | <ol> | 
|  | <li>Checkout CLDR</li> | 
|  | <li>Update <i>$cldr_root</i>/common to 'release-1-4' tag</li> | 
|  | <li>Update <i>$cldr_root</i>/tools to 'release-1-4' tag</li> | 
|  | <li>Checkout ICU with tag 'release-3-6'</li> | 
|  | <li>Checkout ICU4J with tag 'release-3-6'</li> | 
|  | <li>Build ICU4J</li> | 
|  | <li>Build ICU4C</li> | 
|  | <li>Change to <i>$cldr_root</i>/tools/java directory</li> | 
|  | <li>Build CLDR using ant after pointing ICU4J_CLASSES env var to the newly build ICU4J</li> | 
|  | <li>cd to <i>$icu4c_root</i>/source/data directory</li> | 
|  | <li>Follow the instructions in the cldr-icu-readme.txt</li> | 
|  | <li>Build ICU data from CLDR</li> | 
|  | <li>cd to <i>$icu4c_root/source/tools/genrb</i></li> | 
|  | <li>run ./gendtjar.pl</li> | 
|  | <li>cd to <i>$icu4j_root</i> dir</li> | 
|  | <li>Build and test icu4j</li> | 
|  | </ol> | 
|  |  | 
|  | <h3 class="doc"><a name="WhereToFindMore"></a>Where to Find More | 
|  | Information</h3> | 
|  | <p><a href="http://www.ibm.com/software/globalization/icu/">http://www.ibm.com/software/globalization/icu/</a> | 
|  | is a | 
|  | pointer to general information about the International Components for | 
|  | Unicode in Java </p> | 
|  | <p><a href="http://www.ibm.com/software/globalization/">http://www.ibm.com/software/globalization/</a> | 
|  | is a pointer to | 
|  | information on how to make applications global. </p> | 
|  | <h3 class="doc"><a name="SubmittingComments"></a>Submitting Comments, | 
|  | Requesting Features and | 
|  | Reporting Bugs</h3> | 
|  | <p>Your comments are important to making ICU4J successful. We are | 
|  | committed | 
|  | to fixing any bugs, and will use your feedback to help plan future | 
|  | releases.</p> | 
|  | <p>To submit comments, request features and report bugs, contact us | 
|  | through the <a | 
|  | href="http://icu.sourceforge.net/contacts.html">ICU Support | 
|  | mailing list</a>.<br> | 
|  | While we are not able to respond individually to each comment, we do | 
|  | review all comments.</p> | 
|  | <br> | 
|  | <br> | 
|  | <h2>Thank you for your interest in ICU4J!</h2> | 
|  | <br> | 
|  | <hr align="center" size="2" width="100%"> | 
|  | <p><i><font size="-1">Copyright © 2002-2006 International Business | 
|  | Machines Corporation and others. All Rights | 
|  | Reserved.<br> | 
|  | 4400 North First Street, San José, CA 95193, USA | 
|  | </font></i></p> | 
|  | </body> | 
|  | </html> |