<!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-2005, 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.4.1</h3>
<hr size="2" width="100%">
<p><b>Release Date</b><br>
Oct 7, 2005<br>
</p>
<p><b>Note:</b> This is an update release of ICU4J 3.4.  It contains bug fixes
and promotes some @draft API to stable, but does not introduce new API
or functionality.  These changes will be rolled into the next release of ICU4J.
</p>
<p>For the most recent release, see the <a
 href="http://www.ibm.com/software/globalization/icu/downloads.jsp"> 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>
&#8211; rule-based, up-to-date Unicode Collation Algorithm (UCA) sorting order<br>
&nbsp;&nbsp;&nbsp;&nbsp;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> &#8211; String manipulation and character properties<br>
&nbsp;&nbsp;&nbsp;&nbsp;Required for proper GB 18030 and JIS 213
repertoire support</li>
  <li><a href="http://icu.sourceforge.net/userguide/charset.html"><b>Charset
Detection</b></a> &#8211; Recognition of various single and multibyte charsets<br>
&nbsp;&nbsp;&nbsp;&nbsp;Useful for recognizing untagged text data</li>
  <li><a
 href="http://icu.sourceforge.net/userguide/unicodeSet.html"><b>UnicodeSet</b></a>
&#8211; standard set operations optimized for sets of Unicode characters<br>
&nbsp;&nbsp;&nbsp;&nbsp;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>
&#8211; a flexible mechanism for Unicode text conversions<br>
&nbsp;&nbsp;&nbsp;&nbsp;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> &#8211; NFC, NFD, NFKD, NFKC<br>
&nbsp;&nbsp;&nbsp;&nbsp;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> &#8211; Arabic, Buddhist, Hebrew, and Japanese calendars<br>
&nbsp;&nbsp;&nbsp;&nbsp;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> &#8211; Scientific Notation, Spelled-out, etc.<br>
&nbsp;&nbsp;&nbsp;&nbsp;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> &#8211; Rule-based, supports Thai<br>
&nbsp;&nbsp;&nbsp;&nbsp;Required for correct support of Thai</li>
  <li><a
 href="http://icu.sourceforge.net/userguide/compression.html"><b>Unicode
Text
Compression</b></a> &#8211; Standard compression of Unicode text<br>
&nbsp;&nbsp;&nbsp;&nbsp;Suitable for large numbers of small fields,
where LZW and similar schemes
do not apply</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> &#8211; NFC, NFD, NFKD, NFKC<br>

        &nbsp;&nbsp;&nbsp;&nbsp;Produces canonical text representations, needed for XML and the net.

    <li><b>International Calendars</b> &#8211; Arabic, Buddhist, Hebrew, and Japanese<br>

        &nbsp;&nbsp;&nbsp;&nbsp;Required for correct presentation of dates in some countries.

    <li><b>Number Format Enhancements</b> &#8211; Scientific Notation, Spelled-out Numbers<br>

        &nbsp;&nbsp;&nbsp;&nbsp;Enhances standard Java number formatting. The spelled-out format is used

for checks and similar documents.

    <li><b>Enhanced word-break detection</b> &#8211; Rule-based, supports Thai<br>

        &nbsp;&nbsp;&nbsp;&nbsp;Required for correct support of Thai.

    <li><b>Unicode Text Compression</b> &#8211; Standard compression of Unicode text<br>

        &nbsp;&nbsp;&nbsp;&nbsp;Suitable for large numbers of small fields, where LZW and similar schemes

do not apply.

    <li><b>Collation</b> &#8211; Rule-based, up-to-date Unicode Collation Algorithm (UCA) sorting order<br>

        &nbsp;&nbsp;&nbsp;&nbsp;For fast multilingual string comparison

    <li><b>Transforms</b> &#8211; Rule-based transformations of unicode data<br>

        &nbsp;&nbsp;&nbsp;&nbsp;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><a href="#News_API">APIs promoted to stable</a></li>
  <li><a href="#News_Fixes">Patches</a></li>
</ul>
<p>A complete report of the API changes between version 3.4.1 and
version 3.4 of ICU4J can be found 
<a href="APIChangeReport.html">here</a>.  This report is generated by a
tool and has some limitations, the most notable of which is that it
does not properly reflect the effect of class inheritance
changes. Also of course, being generated by a tool, the report does
not provide explanation or commentary on the changes. For background
information and clarification of changes it's always recommended that
you check the mailing list and archives.</p>

<h4><a name="News_ULocale" id="News_ULocale">APIs promoted to stable</a></h4>
<p>At the request of several users of ICU4J, some draft APIs have been promoted
to stable earlier than usual.  This enables use of this API without deprecated warnings.
(The next major release of ICU4J will deal with the issue of draft APIs and
deprecated warnings more completely.)</p>
<ul>
<li><b>jb4831:</b> Many <tt>ULocale</tt> APIs were still @draft, making it impossible
to use these APIs without compiler warnings.</li>
</ul>
<h4><a name="News_Fixes" id="News_Fixes">Patches</a></h4>
<p>This release contains the following bug fixes, which don't involve API changes:<ul>
<li><b>jb4860:</b> Problems when reusing a <tt>CharsetDetector</tt></li>
<li><b>jb4858:</b> <tt>TimeZone.getDisplayName</tt> was not making full use of the timezone name data in ICU</li>
<li><b>jb4857:</b> zh_TW, zh_CH time zone names resolved incorrectly</li>
<li><b>jb4423:</b> <tt>StringTokenizer.countTokens</tt> caused <tt>hasMoreTokens</tt> to malfunction</li>
</ul>
<br/>
</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 text of the X license is available at <a
 href="http://www.x.org/Downloads_terms.html">http://www.x.org/Downloads_terms.html</a>. 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> Parts of ICU4J depend on functionality that is only available in
JDK 1.4 or later, although some components work under earlier JVMs. All
components should be compiled using a Java 2 compiler, as even
components that run under earlier JVMs can require language features
that are only present in Java2. Currently 1.1.x, 1.2.x and 1.3.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.4.2</li>
  <li> Solaris 5.9, Sun JDK 1.5.0</li>
  <li> AIX 5.2, IBM JDK 1.4.2</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:
</p>
<ul>
<li> Win2K / IBM JDK 1.4.1, Sun JDK  1.4, 1.4.1, 1.4.2</li>
<li> WinXP / IBM JDK 1.4.1, Sun JDK 1.4.2, 1.5.0</li>
<li> Solaris 5.6 , Solaris 5.7 / Sun JDK 1.4, 1.4.1, 1.4.2</li>
<li> Solaris 5.9 / Sun JDK 1.4, 1.4.1, 1.4.2</li>
<li> AIX 5.1, AIX 5.2 / IBM JDK 1.4.1</li>
<li> RedHat Enterprise Linux 3/  IBM JDK 1.4.1, 1.4.0, Sun JDK 1.4, 1.4.1, 1.4.2, 1.5.0</li>
<li> RedHat Linux 7.2/  IBM JDK 1.4.1, 1.4.0, Sun JDK 1.4, 1.4.1, 1.4.2, 1.5.0</li>
</ul>
<h3 class="doc"><a name="obtaining"></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://ibm.com/software/globalization/icu/downloads.jsp">ICU Downloads page</a>.
A packaged snapshot is named <b>icu4jsrc_XXX.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://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://ibm.com/software/globalization/icu/downloads.jsp">http://ibm.com/software/globalization/icu/downloads.jsp</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/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 </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> &#8211; Detection of charset from a byte stream</li>
  <li>International Calendars &#8211; <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> &#8211; 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> &#8211; 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> &#8211; Rule-based, supports Thai</li>
  <li><a
 href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/Transliterator.html">Transliteration</a>
&#8211; 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>
&amp; <a
 href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/text/UnicodeDecompressor.html">Decompression</a>
&#8211; 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. 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.4.2<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&gt;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>
<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&#8225;</b></th>
    </tr>
    <tr bgcolor="#ffffff">
      <td colspan="4">
      <table>
        <tbody>
          <tr>
            <td valign="baseline">Package*</td>
            <td valign="baseline">Main Classes&#8224; </td>
          </tr>
        </tbody>
      </table>
      </td>
    </tr>
  </tbody>
</table>
<b><font size="2">* com.ibm. should be prepended to the package names
listed.
<br>
&#8224; A bold class name core service APIs. Only APIs in these classes are
fully supported.
<br>
&#8225; Sizes are of the compressed jar file containing only this module.
Full size is 3,047&nbsp;KB.
</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">457&nbsp;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, UCharacterNameIterator, UCharacterTypeIterator,
UProperty, UScript</td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline"><b>Normalizer</b>, Replaceable,
ReplaceableString, <b>UCharacterIterator</b>, <b>UForwardCharacterIterator</b>,
UnicodeFilter, UnicodeMatcher, UnicodeSet, UnicodeSetIterator, UTF16</td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline">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">1,510&nbsp;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, UCharacterNameIterator, UCharacterTypeIterator,
lang.UProperty, UScript </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline">BreakDictionary, BreakIterator,
BreakIteratorFactory, CanonicalIterator, <b>CollationElementIterator</b>,
            <b>CollationKey</b>, <b>CollationParsedRuleBuilder</b>, <b>CollationRuleParser</b>,
            <b>Collator</b>, <b>CollatorReader</b>,
DictionaryBasedBreakIterator, <b>Normalizer</b>, Replaceable,
ReplaceableString, RuleBasedBreakIterator, <b>RuleBasedCollator</b>, <b>SearchIterator</b>,
            <b>StringSearch</b>, <b>UCharacterIterator</b>, <b>UForwardCharacterIterator</b>,
UnicodeFilter, UnicodeMatcher, UnicodeSet, UnicodeSetIterator, UTF16 </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline">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">1,713&nbsp;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, UCharacterNameIterator, UCharacterTypeIterator,
UProperty, UScript </td>
          </tr>
          <tr>
            <td valign="baseline">icu.math:</td>
            <td valign="baseline"><b>BigDecimal</b> </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline">BreakIterator, <b>ChineseDateFormat</b>,
            <b>ChineseDateFormatSymbols</b>, <b>DateFormat</b>, <b>DateFormatSymbols</b>,
            <b>DecimalFormat</b>, <b>DecimalFormatSymbols</b>,
Normalizer, NumberFormat, Replaceable, ReplaceableString, <b>SimpleDateFormat</b>,
            <b>UCharacterIterator</b>, <b>UForwardCharacterIterator</b>,
UnicodeFilter, UnicodeMatcher, UnicodeSet, UnicodeSetIterator, UTF16 </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline"><b>BuddhistCalendar</b>, <b>Calendar</b>,
            <b>CalendarAstronomer</b>, <b>CalendarCache</b>, <b>CalendarFactory</b>,
            <b>ChineseCalendar</b>, <b>Currency</b>, <b>DateRule</b>,
            <b>EasterHoliday</b>, <b>EasterRule</b>, <b>GregorianCalendar</b>,
            <b>HebrewCalendar</b>, <b>HebrewHoliday</b>, <b>Holiday</b>,
            <b>IslamicCalendar</b>, <b>JapaneseCalendar</b>, <b>RangeDateRule</b>,
            <b>SimpleDateRule</b>, <b>SimpleHoliday</b>, <b>SimpleTimeZone</b>,
            <b>SimpleTimeZoneAdapter</b>, <b>TimeZone</b>, <b>TimeZoneData</b>,
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,488&nbsp;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, UCharacterNameIterator, UCharacterTypeIterator,
UProperty, UScript </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline"><b>BreakDictionary</b>, <b>BreakIterator</b>,
            <b>BreakIteratorFactory</b>, <b>DictionaryBasedBreakIterator</b>,
Normalizer, Replaceable, ReplaceableString, <b>text.RuleBasedBreakIterator</b>,
UCharacterIterator, UForwardCharacterIterator, UnicodeFilter,
UnicodeMatcher, UnicodeSet, UnicodeSetIterator, UTF16 </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline">RangeValueIterator, 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">535&nbsp;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>UCharacterNameIterator</b>,
            <b>UCharacterTypeIterator</b>, <b>UProperty</b>, <b>UScript</b>,
            <b>UScriptRun</b> </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline">BreakDictionary, BreakIterator,
BreakIteratorFactory, DictionaryBasedBreakIterator, Normalizer,
Replaceable, ReplaceableString, RuleBasedBreakIterator, SymbolTable,
UCharacterIterator, UForwardCharacterIterator, UnicodeFilter,
UnicodeMatcher, UnicodeSet, UnicodeSetIterator, <b>UTF16</b> </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline">CompactByteArray, RangeValueIterator,
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,432&nbsp;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>UCharacterNameIterator</b>,
            <b>UCharacterTypeIterator</b>, <b>UProperty</b>, <b>UScript</b>,
            <b>UScriptRun</b> </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline">BreakDictionary, BreakIterator,
BreakIteratorFactory, DictionaryBasedBreakIterator, <b>Normalizer</b>,
            <b>Replaceable</b>, <b>ReplaceableString</b>,
RuleBasedBreakIterator, <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"><b>RangeValueIterator</b>, <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">2,531&nbsp;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, UCharacterNameIterator, UCharacterTypeIterator,
UProperty, UScript </td>
          </tr>
          <tr>
            <td valign="baseline">icu.math:</td>
            <td valign="baseline"><b>math.BigDecimal</b> </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline">BreakIterator, CanonicalIterator,
ChineseDateFormat, ChineseDateFormatSymbols, CollationElementIterator,
CollationKey, CollationParsedRuleBuilder, CollationRuleParser,
Collator, CollatorReader, <b>DateFormat</b>, <b>DateFormatSymbols</b>,
            <b>DecimalFormat</b>, <b>DecimalFormatSymbols</b>,
Normalizer, <b>NumberFormat</b>, Replaceable, ReplaceableString,
RuleBasedCollator, <b>RuleBasedNumberFormat</b>, <b>SimpleDateFormat</b>,
            <b>UCharacterIterator</b>, <b>UForwardCharacterIterator</b>,
UnicodeFilter, UnicodeMatcher, UnicodeSet, UnicodeSetIterator, UTF16 </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline"><b>Calendar</b>, <b>CalendarAstronomer</b>,
            <b>CalendarCache</b>, <b>CalendarFactory</b>, <b>ChineseCalendar</b>,
            <b>Currency</b>, <b>GregorianCalendar</b>, <b>RangeValueIterator</b>,
            <b>SimpleTimeZone</b>, <b>SimpleTimeZoneAdapter</b>, <b>TimeZone</b>,
            <b>TimeZoneData</b>, 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">483&nbsp;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, UCharacterNameIterator, UCharacterTypeIterator,
UProperty, UScript </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline">BreakIterator, CanonicalIterator, <b>IDNA</b>,
Normalizer, Replaceable, ReplaceableString, <b>StringPrep</b>, <b>StringParseException</b>,
UCharacterIterator, UForwardCharacterIterator, UnicodeSet, UTF16 </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline"> RangeValueIterator, StringTokenizer,
ULocale, UResourceBundle 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">778&nbsp;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>UCharacterNameIterator</b>,
            <b>UCharacterTypeIterator</b>, <b>UProperty</b>, <b>UScript</b>,
            <b>UScriptRun</b> </td>
          </tr>
          <tr>
            <td valign="baseline">icu.text:</td>
            <td valign="baseline"><b>AnyTransliterator</b>, <b>BreakDictionary</b>,
            <b>BreakIterator</b>, <b>BreakIteratorFactory</b>, <b>BreakTransliterator</b>,
            <b>DictionaryBasedBreakIterator</b>, <b>Normalizer</b>, <b>Replaceable</b>,
            <b>ReplaceableString</b>, <b>RuleBasedBreakIterator</b>, <b>StringReplacer</b>,
            <b>Transliterator</b>, <b>UCharacterIterator</b>, <b>UForwardCharacterIterator</b>,
            <b>UnicodeSet</b>, <b>UnicodeSetIterator</b>, <b>UTF16</b>
            </td>
            <td> <br>
            </td>
          </tr>
          <tr>
            <td valign="baseline">icu.util:</td>
            <td valign="baseline"><b>RangeValueIterator</b>, <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>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&nbsp;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>icudt34b</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>icudt34b/coll</tt>,
as a set of <tt>".res"</tt> files.</li>
  <li>The <b>rule-based transliterator data</b> is under the directory
<tt>icudt34b/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>icudt34b/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/*checkout*/icu/readme.html#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/*checkout*/icu/readme.html#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>
<h3 class="doc"><a name="WhereToFindMore"></a>Where to Find More
Information</h3>
<p><a href="http://ibm.com/software/globalization/icu/">http://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://ibm.com/software/globalization/">http://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 &copy; 2002-2005 International Business
Machines Corporation and others. All Rights
Reserved.<br>
5600 Cottle Road, San Jos&eacute;, CA 95193
</font></i></p>
</body>
</html>
