<!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="© 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html#License">
  <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">
<h1>International Components for Unicode for Java (ICU4J)</h1>
<h2>Read Me for ICU4J 58 Milestone 1</h2>
(Last Update: 2016-July-1)
<hr size="2" width="100%">

<p>
<!-- <b>Note:</b> This is major release of ICU4J. It contains bug fixes and adds implementations
of inherited API and introduces new API or functionality. -->
<b>Note:</b> This is a development release of ICU4J 58.
The contents of this document may not reflect the recent changes done
for ICU 58 development. This milestone is intended for those wishing
to get an early look at ICU4J 58 new features and API changes. It is not
recommended for production use.
<!-- <b>Note:</b> This is a release candidate of ICU4J 58.
The contents of this document may not reflect the recent changes done
for ICU 58 development. This release candidate is intended for those
wishing to verify ICU 58 integration before final release. It is not
recommended for production use. -->
</p>
<p>For the most recent release, see the <a
 href="http://www.icu-project.org/download/"> ICU4J
download site</a>. </p>
<h2 class="doc">Contents</h2>
<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>
<h2 class="doc"><a name="introduction"></a>Introduction to ICU4J</h2>
<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>

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

<p>See the <a href="https://sites.google.com/site/icusite/download/58">ICU 58 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/milestone-58-0-1/APIChangeReport.html">here</a>.</p>

    <!-- ICU 58 items -->
    <!-- <h3>[Subject]</h3> -->

    <!-- end ICU 58 items -->

<h2 class="doc"><a name="license"></a>License Information</h2>
<p>
The ICU projects (ICU4C and ICU4J) are hosted by the
<a href="http://www.unicode.org/">Unicode Consortium</a>. The ICU binary
and source files are distributed under the
<a href="http://www.unicode.org/copyright.html#License">UNICODE DATA FILES
AND SOFTWARE LICENSE</a>. The full copy of the license and third party
software licences are available in <a href="./main/shared/licenses/LICENSE">LICENSE</a>
file included in this package.
</p>
<h2 class="doc"><a name="PlatformDependencies"></a>Platform Dependencies</h2>
<p>
ICU4J 58 depends on J2SE 6 functionality.  Therefore, ICU4J only runs on
JRE version 6 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 8</th>
  <th colspan="2">JRE 7</th>
  <th colspan="2">JRE 6</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">-</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">-</td>
  <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>
</tr>
<tr>
  <th>HP-UX 11 (IA64)</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" 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">-</td>
  <td align="center">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</td>
</tr>
<tr>
  <th>Redhat Enterprise Linux 6 (x86)</th>
  <td align="center">-</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="#DDDDFF">Regularly tested</td>
  <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>
</tr>
<tr>
<th>Solaris 10 (SPARC)</th>
  <td align="center">-</td>
  <td align="center">-</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">-</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">-</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">-</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">-</td>
  <td align="center" bgcolor="#DDDDFF">Regularly tested</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>
</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>

<h2 class="doc"><a name="download"></a>How to Download ICU4J</h2>
<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>
<h2 class="doc"><a name="WhatContain"></a>The Structure and Contents of
ICU4J</h2>
<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>

<h2 class="doc"><a name="API"></a>Where to get Documentation</h2>
<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>,
    Persian, Dangi.</li>
  <li>Time Zone Enhancements &#8211;
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/BasicTimeZone.html">Time zone transition and rule detection</a>,
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/VTimeZone.html">iCalendar VTIMEZONE formatting and parsing</a>,
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/RuleBasedTimeZone.html">Custom time zones constructed by user defined rules</a>.
  <li>Date Format Enhancements &#8211; <a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/DateTimePatternGenerator.html">Date/Time Pattern Generator</a>,
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/DateIntervalFormat.html">Date Interval Format</a>,
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/DurationFormat.html">Duration Format</a>.
  <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 &#8211; <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>,
<a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/AlphabeticIndex.html">Alphabetic indexing</a></li>
</ul>
<h2 class="doc"><a name="HowToInstallJavac"></a>How to Install and Build</h2>
<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 6 or later and the Ant build system
version 1.8 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.9.4 compiled on April 29 2014
     [echo] OS:           Windows 7
     [echo] OS Version:   6.1
     [echo] OS Arch:      amd64
     [echo] Host:         ICUDEV
     [echo] -------------------------------------------------------

core:

@compile:
     [echo] build-local:     ../../shared/../../build-local.properties
     [echo] ${java5.bootclasspath}
     [echo] --- java compiler arguments ------------------------
     [echo] source dir:     C:\icu4j\main\classes\core/src
     [echo] output dir:     C:\icu4j\main\classes\core/out/bin
     [echo] bootclasspath:  
     [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 365 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

set-icuconfig-datapath:

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] build-local:     ../../shared/../../build-local.properties
     [echo] ${java5.bootclasspath}
     [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: 50 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>

<h2 class="doc"><a name="HowToModularize"></a>How to modularize ICU4J</h2>
<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>.

<h2 class="doc"><a name="tryingout"></a>Trying Out ICU4J</h2>
<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>
<h3>Charset</h3>
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>
<h3>Other demos</h3>
<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>

<h2 class="doc"><a name="resources">ICU4J Resource Information</a></h2>
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>icudt58b</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>break iterator data</b> is under the directory <tt>icudt58b/brkitr</tt>,
  as a set of <tt>".res"</tt>, <tt>".brk"</tt> and <tt>".dict"</tt> files.</li>

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

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

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

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

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

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

  <li>The <b>measurement unit data</b> is under the directory <tt>icudt58b/unit</tt>,
  as a set of <tt>".res"</tt> files.</li>

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

  <li>The <b>character property data</b> and default <b>unicode collation algorithm
  (UCA) data</b> is found under the directory <tt>icudt58b</tt>, as a set of
  <tt>".icu"</tt> files. </li>

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

  <li>The <b>character set converter data</b> is under the directory
  <tt>icudt58b</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>icudt58b</tt>, as <tt>zoneinfo64.res</tt>.</li>

  <li>The <b>holiday data</b> is under the directory <tt>icudt58b</tt>,
  as a set of <tt>".class"</tt> files, named <tt>"HolidayBundle_"</tt>
  followed by the locale ID.</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>
<h3>Using additional resource files with ICU4J</h3>
<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>
<h3><a name="resourcesICU4C">Building ICU4J Resources from ICU4C</a></h3>
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: This procedure assumes that all 3 sources are present</I>
<ol>
    <li>Checkout or download CLDR version 'release-30'</li>
    <li>Checkout ICU4C with tag 'release-58-rc'</li>
    <li>Checkout ICU4J with tag 'release-58-rc'</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>

<h2 class="doc"><a name="timezone"></a>About ICU4J Time Zone</h2>
<p>ICU4J 58 Milestone 1 includes time zone data version 2016e, which is the latest one 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>Starting with ICU4J 4.0, 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>

<h2 class="doc"><a name="WhereToFindMore"></a>Where to Find More
Information</h2>
<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>
<h2 class="doc"><a name="SubmittingComments"></a>Submitting Comments,
Requesting Features and
Reporting Bugs</h2>
<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">© 2016 and later: Unicode, Inc. and others.<br>
License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a>
</font></I></p>
</body>
</html>
