<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="Content-Style-Type" content="text/css2">
  <title>ReadMe for ICU4J</title>
  <meta name="COPYRIGHT" content="Copyright 2000-2012, International Business Machines Corporation and others. All Rights Reserved.">
  <style type="text/css">
h3.doc { background: #CCCCFF }
h4.doc { text-decoration: underline }
  </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 50.2</h3>
(Last Update: 2019-Apr-10)
<hr size="2" width="100%">

<p>
<b>Note:</b> This is an update release of ICU4J 50. This release contains bug
fixes and updated data, but does not introduce any new APIs for functionatlites.
<!-- <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://www.icu-project.org/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="#changes">Changes 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="#timezone">About ICU4J Time Zone</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 JRE that provides:
</p>
<ul>
  <li><a
 href="http://www.icu-project.org/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 J2SE implementation</li>
  <li><a href="http://www.icu-project.org/userguide/charsetDetection.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://www.icu-project.org/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://www.icu-project.org/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://www.icu-project.org/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://www.icu-project.org/userguide/dateCalendar.html"><b>International
Calendars</b></a> &#8211; Arabic, Buddhist, Chinese, Hebrew, Japanese, Ethiopic, Islamic, Coptic and other calendars<br>
&nbsp;&nbsp;&nbsp;&nbsp;Required for correct presentation of dates in
certain countries</li>
  <li><a
 href="http://www.icu-project.org/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://www.icu-project.org/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://www.icu-project.org/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>
  <li><a
 href="http://www.icu-project.org/userguide/conversion.html"><b>Charset Conversion</b></a> &#8211; Conversion to and from different charsets.<br>
&nbsp;&nbsp;&nbsp;&nbsp;Plugs into Java CharsetProvider Service Provider Interface (SPI)</li>

</ul>
<blockquote>
  <p><b>Note:</b> We continue to provide assistance to Java, and in some
cases, ICU4J support has been rolled into a later release of Java. For
example, BCP47 language tag support including Unicode locale extensions
is now in Java 7. However, the most current and complete version is always
found in ICU4J.</p>
</blockquote>

<h3 class="doc"><a name="changes"></a>Changes In This Release</h3>

<p>See the <a href="http://sites.google.com/site/icusite/download/50">ICU 50 download page</a>
about new features in this release.
The list of API changes since the previous ICU4J release is available
<a href="http://source.icu-project.org/repos/icu/icu4j/tags/release-50-1/APIChangeReport.html">here</a>.</p>

<h4><code>Collator.ReorderCodes.DEFAULT</code> value</h4>
<p>We changed the numeric value of
  <code>static final Collator.ReorderCodes.DEFAULT</code> from +1 to -1
  so that it does not collide with a valid UScript code (<code>UScript.INHERITED</code>),
  and to make it match <code>UScript.INVALID_CODE</code> and C/C++ <code>UCOL_REORDER_CODE_DEFAULT</code>,
  as had been intended.
  Programs using <code>Collator.ReorderCodes.DEFAULT</code> must be recompiled.</p>

<h4><code>class DictionaryBasedBreakIterator</code> has been removed.</h4>

<p>The functionality of the <code>DictionaryBasedBreakIterator</code>
was moved into the base <code>RuleBasedBreakIterator</code>, and improved.
In particular, Java RBBI now handles multiple built-in dictionaries,
selecting them by character script, as in C++.
As a result, creating a BreakIterator for a particular language or dictionary is
unnecessary and obsolete.</p>

<p>The dictionary data structure was changed, so ICU 50 would not be able to
handle an old <code>InputStream dictionaryStream</code>.
(If we wanted to formally keep a <code>class DictionaryBasedBreakIterator</code>
it would be an empty class, and its one public constructor would
throw an <code>UnsupportedOperationException</code>.)</p>

<p>The DBBI class was not usable by itself:
A dictionary alone is not sufficient for dictionary-based breaking.
For each dictionary there must be specific code with the specific matching algorithm
(e.g., longest match vs. word-frequency-based word sequence probability)
and with a script-specific test for whether a dictionary word was found at a syllable boundary
(or whatever is the appropriate criterium).</p>

<p>RBBI and its DBBI subclasses had an "intimate connection" and were not effectively separable.</p>

<p>In C++, DBBI was already not public API and has been removed several years ago.</p>

<p>If any users have subclasses of <code>class DictionaryBasedBreakIterator</code>,
they will need to be changed to subclass <code>RuleBasedBreakIterator</code> directly.</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/licenses/license-list.html#GPLCompatibleLicenses">
http://www.gnu.org/licenses/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="main/shared/licenses/license.html">ICU's license</a> is included in the download
package.
</p>
<h3 class="doc"><a name="PlatformDependencies"></a>Platform Dependencies</h3>
<p>
ICU4J 50 depends on J2SE 5.0 functionality.  Therefore, ICU4J only runs on
JRE version 5.0 or later.
The table below shows the operating systems and JRE/VM versions currently
used by the ICU development team to test ICU4J.
</p>
<table border="1">
<tr>
  <th rowspan="2">Operating System</th>
  <th colspan="2">JRE 7</th>
  <th colspan="2">JRE 6</th>
  <th colspan="2">JRE 5</th>
</tr>
<tr>
  <th>32bit</th>
  <th>64bit</th>
  <th>32bit</th>
  <th>64bit</th>
  <th>32bit</th>
  <th>64bit</th>
</tr>
<tr>
  <th>AIX 6.1</th>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
  <th>AIX 7.1</th>
  <td align="center">-</td>
  <td align="center" bgcolor="#CCCCFF"><em><b>Reference platform</b></em></td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
  <th>HP-UX 11 (IA64)</th>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
  <th>Mac OS X 10.6</th>
  <td align="center">-</td>
  <td align="center">-</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center">-</td>
</tr>
<tr>
  <th>Redhat Enterprise Linux 6 (x86)</th>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
</tr>
<tr>
  <th>Redhat Enterprise Linux 6 (x86_64)</th>
  <td align="center">-</td>
  <td align="center" bgcolor="#CCCCFF"><em><b>Reference platform</b></em></td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
<th>Solaris 10 (SPARC)</th>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
  <th>Solaris 11 (SPARC)</th>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
  <th>Windows XP</th>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
</tr>
<tr>
  <th>Windows Vista</th>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
</tr>
<tr>
  <th>Windows 7</th>
  <td align="center" bgcolor="#CCCCFF"><em><b>Reference platform</b></em></td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
</tr>
<tr>
  <th>Windows 2008 Server</th>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
</table>

<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:</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 library files.
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://www.icu-project.org/download/">ICU Download page</a>.
</li></ul>
<ul type="disc">
  <li><b>Subversion 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 Subversion
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.icu-project.org/repository/">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 download page at <a
 href="http://www.icu-project.org/download/">http://www.icu-project.org/download/</a>
</p>
<h3 class="doc"><a name="WhatContain"></a>The Structure and Contents of
ICU4J</h3>
<p>Below, all directory pathes are relative to the directory where the
ICU4J source archive is extracted.
</p>
<p><b>Information and build files:</b></p>
<table border="1">
<tr>
  <th>Path</th>
  <th>Description</th>
</tr>
<tr>
  <td>readme.html</td>
  <td>A description of ICU4J (International Components for Unicode for Java)</td>
</tr>
<tr>
  <td>build.html</td>
  <td>The main Ant build file for ICU4J.  See <a href="#HowToInstallJavac">How to Install
  and Build</a> for more information</td>
</tr>
<tr>
  <td>main/shared/licenses/license.html</td>
  <td>The X license, used by ICU4J</td>
</tr>
</table>

<p><b>ICU4J runtime class files:</b></p>
<table border="1">
<tr>
  <th>Path</th>
  <th>Sub-component Name</th>
  <th>Build Dependencies</th>
  <th>Public API Packages</th>
  <th>Description</th>
</tr>
<tr>
  <td>main/classes/charset</td>
  <td>icu4j-charset</td>
  <td>icu4j-core</td>
  <td>com.ibm.icu.charset</td>
  <td>Implementation of <code>java.nio.charset.spi.CharsetProvider</code>.
  This sub-component is shipped as icu4j-charset.jar along with
  ICU charset converter data files.</td>
</tr>
<tr>
  <td>main/classes/collate</td>
  <td>icu4j-collate</td>
  <td>icu4j-core</td>
  <td>com.ibm.icu.text<br>
  com.ibm.icu.util</td>
  <td>Collator APIs and implementation.  Also includes some public API classes
  that depend on Collator.
  This sub-component is packaged as a part of icu4j.jar.</td>
</tr>
<tr>
  <td>main/classes/core</td>
  <td>icu4j-core</td>
  <td>n/a</td>
  <td>com.ibm.icu.lang<br>
  com.ibm.icu.math<br>
  com.ibm.icu.text<br>
  com.ibm.icu.util</td>
  <td>ICU core API classes and implementation.
  This sub-component is packaged as a part of icu4j.jar.</td>
</tr>
<tr>
  <td>main/classes/currdata</td>
  <td>icu4j-currdata</td>
  <td>icu4j-core</td>
  <td>n/a</td>
  <td>No public API classes.  Provides access to currency display data.
  This sub-component is packaged as a part of icu4j.jar.</td>
</tr>
<tr>
  <td>main/classes/langdata</td>
  <td>icu4j-langdata</td>
  <td>icu4j-core</td>
  <td>n/a</td>
  <td>No public API classes.  Provides access to language display data.
  This sub-component is packaged as a part of icu4j.jar.</td>
</tr>
<tr>
  <td>main/classes/localespi</td>
  <td>icu4j-localespi</td>
  <td>icu4j-core<br>
  icu4j-collate<br>
  </td>
  <td>n/a</td>
  <td>Implementation of various locale-sensitive service providers defined
  in <code>java.text.spi</code> and <code>java.util.spi</code> in J2SE 6.0
  or later Java releases.
  This sub-component is shipped as icu4j-localespi.jar.</td>
</tr>
<tr>
  <td>main/classes/regiondata</td>
  <td>icu4j-regiondata</td>
  <td>icu4j-core</td>
  <td>n/a</td>
  <td>No public API classes.  Provides access to region display data.
  This sub-component is packaged as a part of icu4j.jar.</td>
</tr>
<tr>
  <td>main/classes/translit</td>
  <td>icu4j-translit</td>
  <td>icu4j-core</td>
  <td>com.ibm.icu.text</td>
  <td>Transliterator APIs and implementation.
  This sub-component is packaged as a part of icu4j.jar.</td>
</tr>
</table>

<p><b>ICU4J unit test files:</b></p>
<table border="1">
<tr>
  <th>Path</th>
  <th>Sub-component Name</th>
  <th>Runtime Dependencies</th>
  <th>Description</th>
</tr>
<tr>
  <td>main/tests/charset</td>
  <td>icu4j-charset-tests</td>
  <td>icu4j-charset<br>
  icu4j-core<br>
  icu4j-test-framework</td>
  <td>Test suite for charset sub-component.</td>
</tr>
<tr>
  <td>main/tests/collate</td>
  <td>icu4j-collate-tests</td>
  <td>icu4j-collate<br>
  icu4j-core<br>
  icu4j-test-framework</td>
  <td>Test suite for collate sub-component.</td>
</tr>
<tr>
  <td>main/tests/core</td>
  <td>icu4j-core-tests</td>
  <td>icu4j-core<br>
  icu4j-currdata<br>
  icu4j-langdata<br>
  icu4j-regiondata<br>
  icu4j-test-framework</td>
  <td>Test suite for core sub-component.</td>
</tr>
<tr>
  <td>main/tests/framework</td>
  <td>icu4j-test-framework</td>
  <td>icu4j-core</td>
  <td>Common ICU4J unit test framework and utilities.</td>
</tr>
<tr>
  <td>main/tests/localespi</td>
  <td>icu4j-localespi-tests</td>
  <td>icu4j-core<br>
  icu4j-collate<br>
  icu4j-currdata<br>
  icu4j-langdata<br>
  icu4j-localespi<br>
  icu4j-regiondata<br>
  icu4j-test-framework</td>
  <td>Test suite for localespi sub-component.</td>
</tr>
<tr>
  <td>main/tests/packaging</td>
  <td>icu4j-packaging-tests</td>
  <td>icu4j-core<br>
  icu4j-test-framework</td>
  <td>Test suite for sub-component packaging.</td>
</tr>
<tr>
  <td>main/tests/translit</td>
  <td>icu4j-translit-tests</td>
  <td>icu4j-core<br>
  icu4j-translit
  icu4j-test-framework</td>
  <td>Test suite for translit sub-component.</td>
</tr>
</table>

<p><b>Others:</b></p>
<table border="1">
<tr>
  <th>Path</th>
  <th>Description</th>
</tr>
<tr>
  <td>main/shared</td>
  <td>Files shared by ICU4J sub-components under the <code>main</code> directory including:
  <ul>
    <li>ICU4J runtime data archive (icudata.jar).</li>
    <li>ICU4J unit test data archive (testdata.jar).</li>
    <li>Shared Ant build script and configuration files.</li>
    <li>License files.</li>
  </ul>
  </td>
</tr>
<tr>
  <td>demos</td>
  <td>ICU4J demo programs.</td>
</tr>
<tr>
  <td>perf-tests</td>
  <td>ICU4J performance test files.</td>
</tr>
<tr>
  <td>tools</td>
  <td>ICU4J tools including:
  <ul>
    <li>Custom JavaDoc taglets used for generating ICU4J API references.</li>
    <li>API report tool and data.</li>
    <li>Other independent utilities used for ICU4J development.</li>
  </ul>
  </td>
</tr>
</table>

<h3 class="doc"><a name="API"></a>Where to get Documentation</h3>
<p>The <a href="http://www.icu-project.org/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://www.icu-project.org/apiref/icu4j/">Index
to all ICU4J API</a></li>
  <li><a href="http://www.icu-project.org/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
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/BuddhistCalendar.html">Buddhist</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/ChineseCalendar.html">Chinese</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/CopticCalendar.html">Coptic</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/EthiopicCalendar.html">Ethiopic</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/GregorianCalendar.html">Gregorian</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/HebrewCalendar.html">Hebrew</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/IndianCalendar.html">Indian</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/IslamicCalendar.html">Islamic</a>,
    <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/JapaneseCalendar.html">Japanese</a>.</li>
  <li><a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/Normalizer.html">Unicode
Normalization</a> &#8211; Canonical text representation for W3C.</li>
  <li><a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/NumberFormat.html">Number
Format Enhancements</a> &#8211; Scientific Notation, Spelled out.</li>
  <li><a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/BreakIterator.html">Enhanced
word-break detection</a> &#8211; Rule-based, supports Thai</li>
  <li><a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/Transliterator.html">Transliteration</a>
&#8211; A general framework for converting text from one format to another,
e.g. Cyrillic to Latin, or Hex to Unicode. </li>
  <li>Unicode Text <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/UnicodeCompressor.html">Compression</a>
&amp; <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/UnicodeDecompressor.html">Decompression</a>
&#8211; 2:1 compression on English Unicode text.</li>
  <li>Collation - <a
 href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/RuleBasedCollator.html">Rule-based
sorting</a>, <a
 href="http://www.icu-project.org/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 also place
<strong>icu4j-charset.jar</strong> on your class path along with <strong>icu4j.jar</strong>.
</p>
<p>
To build ICU4J, you will need J2SE SDK 5.0 or later (ICU4J locale SPI
provider sub-components require J2SE SDK 6.0 or later) and the Ant build system
version 1.7 or later. It's recommended to install both the J2SE SDK and Ant 
somewhere <em>outside</em>the ICU4J directory. For example, on Linux you might install
these in <code>/usr/local</code>.</p>
<ul>
  <li>Install J2SE SDK 7.</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 all platforms Ant.
  The build system requires Ant 1.7 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.7.0
        set ANT_HOME=C:\ant
        set PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;%PATH%</pre>
    <p>See the current Ant documentation for details.</p>
  </li>
</ul>
<p>Once the J2SE SDK 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 the build target <strong>jar</strong>
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
other targets.  For example:</p>
<blockquote>
<pre>C:\icu4j>ant
Buildfile: C:\icu4j\build.xml

info:
     [echo] ----- Build Environment Information -------------------
     [echo] Java Home:    C:\jdk1.7.0\jre
     [echo] Java Version: 1.7.0
     [echo] Ant Home:     C:\ant
     [echo] Ant Version:  Apache Ant(TM) version 1.8.4 compiled on May 22 2012
     [echo] OS:           Windows 7
     [echo] OS Version:   6.1
     [echo] OS Arch:      amd64
     [echo] Host:         ICUDEV
     [echo] -------------------------------------------------------

core:

@compile:
     [echo] --- java compiler arguments ------------------------
     [echo] source dir:     C:\icu4j\main\classes\core/src
     [echo] output dir:     C:\icu4j\main\classes\core/out/bin
     [echo] classpath:
     [echo] source:         1.5
     [echo] target:         1.5
     [echo] debug:          on
     [echo] encoding:       UTF-8
     [echo] compiler arg:   -Xlint:all,-deprecation,-dep-ann,-options
     [echo] ----------------------------------------------------
    [mkdir] Created dir: C:\icu4j\main\classes\core\out\bin
    [javac] Compiling 346 source files to C:\icu4j\main\classes\core\out\bin
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.

compile:

@copy:
     [copy] Copying 23 files to C:\icu4j\main\classes\core\out\bin

copy-data:
    [unjar] Expanding: C:\icu4j\main\shared\data\icudata.jar into C:\icu4j\main\
classes\core\out\bin
    [unjar] Expanding: C:\icu4j\main\shared\data\icutzdata.jar into C:\icu4j\mai
n\classes\core\out\bin

...
...
...

_build-localespi:

@compile:
     [echo] --- java compiler arguments ------------------------
     [echo] source dir:     C:\icu4j\main\classes\localespi/src
     [echo] output dir:     C:\icu4j\main\classes\localespi/out/bin
     [echo] classpath:      C:\icu4j\main\classes\core\out\lib\icu4j-core.jar;C:
\icu4j\main\classes\collate\out\lib\icu4j-collate.jar
     [echo] source:         1.6
     [echo] target:         1.6
     [echo] debug:          on
     [echo] encoding:       UTF-8
     [echo] compiler arg:   -Xlint:all,-deprecation,-dep-ann,-options
     [echo] ----------------------------------------------------
    [mkdir] Created dir: C:\icu4j\main\classes\localespi\out\bin
    [javac] Compiling 22 source files to C:\icu4j\main\classes\localespi\out\bin


compile:

@copy:
     [copy] Copying 10 files to C:\icu4j\main\classes\localespi\out\bin

copy:

@jar:
    [mkdir] Created dir: C:\icu4j\main\classes\localespi\out\lib
     [copy] Copying 1 file to C:\icu4j\main\classes\localespi\out
      [jar] Building jar: C:\icu4j\main\classes\localespi\out\lib\icu4j-localesp
i.jar

jar:

@src-jar:
      [jar] Building jar: C:\icu4j\main\classes\localespi\out\lib\icu4j-localesp
i-src.jar

src-jar:

build:

jar:
     [copy] Copying 1 file to C:\icu4j
     [copy] Copying 1 file to C:\icu4j

BUILD SUCCESSFUL
Total time: 1 minute 58 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 border="1">
<tr>
  <th>jar (default)</th>
  <td>Create ICU4J runtime library jar archives (<code>icu4j.jar</code>, 
  <code>icu4j-charset.jar</code> and <code>icu4j-localespi.jar</code>)
  in the root ICU4J directory.</td>
</tr>
<tr>
  <th>check</th>
  <td>Build all ICU4J runtime library classes and corresponding unit test cases,
  then run the tests.</td>
</tr>
<tr>
  <th>clean</th>
  <td>Remove all build output files.</td>
</tr>
<tr>
  <th>main</th>
  <td>Build all ICU4J runtime library sub-components (under the directory
  <code>main/classes</code>).</td>
</tr>
<tr>
  <th>tests</th>
  <td>Build all ICU4J unit test sub-components (under the directory <code>main/tests</code>)
  and their dependencies.</td>
</tr>
<tr>
  <th>tools</th>
  <td>Build the tools.</td>
</tr>
<tr>
  <th>docs</th>
  <td>Run javadoc over the ICU4J runtime library files, generating an HTML documentation
  tree in the subdirectory <code>doc</code>.</td>
</tr>
<tr>
  <th>jarDocs</th>
  <td>Create ICU4J doc jar archive (<code>icu4jdocs.jar</code>) containing API reference
  docs in the root ICU4J directory. </td>
</tr>
<tr>
  <th>jarDemos</th>
  <td>Create ICU4J demo jar archive (<code>icu4jdemos.jar</code>) in the root ICU4J
  directory.</td>
</tr>
</table>

<p>For more information, read the Ant documentation and the <strong>build.xml</strong>
file.</p>
<p><b>Note:</b> If you get an OutOfMemoryError when you are running <tt>"ant check"</tt>,
you can set the heap size of the jvm by setting the environment variable JVM_OPTIONS
to the appropriate java options.</p>

<p><b>Eclipse users:</b> See the ICU4J site for information on<a
 href="http://www.icu-project.org/docs/eclipse_howto/eclipse_howto.html">
how to configure Eclipse</a> to build and develop ICU4J on Eclipse IDE.</p>

<p><b>Note: </b>To install and configure ICU4J Locale Service Provider, please refer the user guide
page <a href="http://userguide.icu-project.org/icu4j-locale-service-provider">ICU4J Locale
Service Provider</a>.</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.  For more details, please
refer to the section <em>Modularization of ICU4J</em> in the ICU user's
guide article <a href="http://userguide.icu-project.org/packaging-icu4j">Packaging ICU4J</a>.

<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 are <strong>unsupported</strong>
and may change or disappear without notice.</p>
<p>The icu4j.jar file contains only the ICU4J runtime library 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-charset.jar</strong> using the 'jar' target.
You can use the charsets by placing these files on your classpath.
<blockquote><tt>java -cp $icu4j_root/icu4j.jar:$icu4j_root/icu4j-charset.jar &lt;your program&gt;</tt></blockquote>
<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;jarDemos</tt>.
Then launch the demos as below:</p>
<blockquote><tt>java -jar $icu4j_root/icu4jdemos.jar</tt></blockquote>

<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 JRE resource information. (Note,
ICU4J 2.8 to 3.4, time zone information depends on the underlying JRE).
The ICU4J resource 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>icudt50b</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>com.ibm.icu.util.UResourceBundle</code>.</li>

  <li>The <b>collation data</b> is under the directory <tt>icudt50b/coll</tt>,
  as a set of <tt>".res"</tt> files.</li>

  <li>The <b>currency display name data</b> is under the directory <tt>icudt50b/curr</tt>,
  as a set of <tt>".res"</tt> files.</li>

  <li>The <b>language display name data</b> is under the directory <tt>icudt50b/lang</tt>,
  as a set of <tt>".res"</tt> files.</li>

  <li>The <b>region display name data</b> is under the directory <tt>icudt50b/region</tt>,
  as a set of <tt>".res"</tt> files.</li>

  <li>The <b>rule-based transliterator data</b> is under the directory
  <tt>icudt50b/translit</tt>, as a set of <tt>".res"</tt> files.</li>

  <li>The <b>rule-based number format data</b> is under the directory
  <tt>icudt50b/rbnf</tt>, as a set of <tt>".res"</tt> files.

  <li>The <b>break iterator data</b> is directly under the
  directory <tt>icudt50b</tt>, 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 directory <tt>icudt50b</tt>,
  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> and default <b>unicode collation algorithm
  (UCA) data</b> is found under the directory <tt>icudt50b</tt>, as a set of
  <tt>".icu"</tt> files. </li>

  <li>The <b>normalization data</b> is found under the directory <tt>icudt50b</tt>,
  as a set of <tt>".nrm"</tt> files. </li>

  <li>The <b>character set converter data</b> is under the directory
  <tt>icudt50b</tt>, as a set of <tt>".cnv"</tt> files.  These files are
  currently included only in icu-charset.jar.</li>

  <li>The <b>time zone rule data</b> is under the directory 
  <tt>icudt50b</tt>, as <tt>zoneinfo64.res</tt>.</li>

  <li>The <b>time zone display name data</b> is under the directory
  <tt>icudt50b/zone</tt>, as a set of <tt>".res"</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>$icu4j_root/main/shared/data/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 output directory by some build targets.
</p>
<h4><a name="resourcesICU4C">Building ICU4J Resources from ICU4C</a></h4>
ICU4J data is built by ICU4C tools. Please see "icu4j-readme.txt" in <I>$icu4c_root</I>/source/data for the procedures.
<h5> Generating Data from CLDR </h5>
<i> Note: The description below does not apply to ICU4J 50.2</i><br>
<I> Note: This procedure assumes that all 3 sources are present</I>
<ol>
    <li>Checkout or download CLDR version 'release-22-1-1'</li>
    <li>Checkout ICU4C with tag 'release-50-1-1'</li>
    <li>Checkout ICU4J with tag 'release-50-1-1'</li>
    <li>cd to <I>$icu4c_root</I>/source/data directory</li>
    <li>Follow the instructions in <I>$icu4c_root</I>/source/data/cldr-icu-readme.txt</li>
    <li>Rebuild ICU4C with the newly generated data.</li>
    <li>Run ICU4C tests to verify that the new data is good.</li>
    <li>Build ICU4J data from ICU4C data by following the procedures in <I>$icu4c_root</I>/source/data/icu4j-readme.txt</li>
    <li>cd to <I>$icu4j_root</I> dir</li>

    <li>Build and test icu4j</li>
</ol>

<h3 class="doc"><a name="timezone"></a>About ICU4J Time Zone</h3>
<p>ICU4J library includes the latest time zone data, as of the release date.
However, time zone data is frequently updated in response
to changes made by local governments around the world.  If you need to update
the time zone data, please refer the ICU user guide topic
<a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">Updating the Time Zone Data</a>.</p>
<p>You can optionally configure ICU4J date and time
service classes to use underlying JDK TimeZone implementation (see the ICU4J API reference
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/TimeZone.html">TimeZone</a>
for the details).  When this configuration is enabled, ICU's own time zone data
won't be used and you have to get time zone data patches from the JRE vendor.</p>

<h3 class="doc"><a name="WhereToFindMore"></a>Where to Find More
Information</h3>
<p><a href="http://www.icu-project.org/">http://www.icu-project.org/</a>
is the home page of International Components for Unicode development project</p>
<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 hosted by IBM</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 investigate any bug reports or suggestions,
and will use your feedback to help plan future releases.</p>
<p>To submit comments, request features and report bugs,
please see <a href="http://www.icu-project.org/bugs.html">ICU bug database
information</a> or contact us through the <a
 href="http://www.icu-project.org/contacts.html">ICU Support
mailing list</a>.  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-2012 International Business
Machines Corporation and others. All Rights
Reserved.<br>
4400 North First Street, San Jos&eacute;, CA 95193, USA
</font></I></p>
</body>
</html>
