546faac4ab
X-SVN-Rev: 22681
1829 lines
71 KiB
HTML
1829 lines
71 KiB
HTML
<!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-2007, 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.8</h3>
|
||
<hr size="2" width="100%">
|
||
<p><b>Release Date</b><br>
|
||
September 14, 2007<br>
|
||
</p>
|
||
<p><b>Note:</b> This is major release of ICU4J. It contains bug fixes
|
||
and adds implementations of inherited API and introduces new API
|
||
or functionality.
|
||
</p>
|
||
<p>For the most recent release, see the <a
|
||
href="http://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="#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 JRE that provides:
|
||
</p>
|
||
<ul>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/Collate_Intro.html"><b>Collation</b></a>
|
||
– rule-based, up-to-date Unicode Collation Algorithm (UCA) sorting order<br>
|
||
For fast multilingual string comparison; faster
|
||
and more complete than
|
||
the J2SE implementation</li>
|
||
<li><a href="http://icu.sourceforge.net/userguide/strings.html"><b>Supplementary
|
||
Characters</b></a> – String manipulation and character properties<br>
|
||
Required for proper GB 18030 and JIS X 0213
|
||
repertoire support</li>
|
||
<li><a href="http://icu.sourceforge.net/userguide/charsetDetection.html"><b>Charset
|
||
Detection</b></a> – Recognition of various single and multibyte charsets<br>
|
||
Useful for recognizing untagged text data</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/unicodeSet.html"><b>UnicodeSet</b></a>
|
||
– standard set operations optimized for sets of Unicode characters<br>
|
||
UnicodeSets can be built from string patterns
|
||
using any Unicode properties.</li>
|
||
<li><a href="http://icu.sourceforge.net/userguide/Transform.html"><b>Transforms</b></a>
|
||
– a flexible mechanism for Unicode text conversions<br>
|
||
Including Full/Halfwidth conversions,
|
||
Normalization, Case conversions, Hex
|
||
conversions, and transliterations between scripts (50+ pairs)</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/normalization.html"><b>Unicode
|
||
Normalization</b></a> – NFC, NFD, NFKD, NFKC<br>
|
||
For canonical text representations, needed for
|
||
XML and the net</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/dateCalendar.html"><b>International
|
||
Calendars</b></a> – Arabic, Buddhist, Chinese, Hebrew, Japanese, Ethiopic, Islamic, Coptic and other calendars<br>
|
||
Required for correct presentation of dates in
|
||
certain countries</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/formatNumbers.html"><b>Number
|
||
Format
|
||
Enhancements</b></a> – Scientific Notation, Spelled-out, etc.<br>
|
||
Enhancements to the normal Java number
|
||
formatting. The spell-out format is
|
||
used for checks and similar documents</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/boundaryAnalysis.html"><b>Enhanced
|
||
Word-Break Detection</b></a> – Rule-based, supports Thai<br>
|
||
Required for correct support of Thai</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/compression.html"><b>Unicode
|
||
Text
|
||
Compression</b></a> – Standard compression of Unicode text<br>
|
||
Suitable for large numbers of small fields,
|
||
where LZW and similar schemes
|
||
do not apply</li>
|
||
<li><a
|
||
href="http://icu.sourceforge.net/userguide/conversion.html"><b>Charset Conversion</b></a> – Conversion to and from different charsets.<br>
|
||
Plugs into Java CharsetProvider Service Provider Interface (SPI)</li>
|
||
|
||
</ul>
|
||
<blockquote>
|
||
<p><b>Note:</b> We continue to provide assistance to Sun, and in some
|
||
cases, ICU4J support has been rolled into a later release of Java. For
|
||
example, the Thai word-break is now in Java 1.4. However, the most
|
||
current and complete version is always found in ICU4J.</p>
|
||
</blockquote>
|
||
|
||
<h3 class="doc"><a name="news"></a>What Is New In This Release?</h3>
|
||
|
||
<p><b>Changes to J2SE version requirement for building ICU4J</b>
|
||
<p>Previous version of ICU4J was successfully built with J2SE SDK 1.4 or later
|
||
versions. In this release, there is a new feature which uses a new type introduced
|
||
in J2SE 5.0. Although the new feature does not need the type available at run time,
|
||
it requires J2SE 5.0 or newer version of Java class library at the build time to enable
|
||
the feature. The binary distribution version of ICU4J available at the ICU download
|
||
page was built with J2SE SDK 5.0 and this version should work well on JRE 1.4 or later
|
||
versions. If you want to build your own copy of ICU4J binaries with J2SE SDK 1.4,
|
||
you can still run all of the Ant standard build targets in build.xml and make ICU4J
|
||
binaries. The build script detects the current Java version and comments out code
|
||
blocks including references to J2SE 5.0 only types.</p>
|
||
<p>
|
||
<p><b>Changes to timezone formatting and parsing</b>
|
||
<p>In ICU 3.8, the behavior of date formatting and parsing has changed
|
||
significantly, perhaps requiring recoding on your part depending on your
|
||
usage. For more information, see <a href="http://icu-project.org/userguide/formatDateTime.html">
|
||
Formatting Dates and Times</a> in the User Guide.
|
||
<p>
|
||
<p><b>Status of ICU4J charset converter</b>
|
||
<p>The ICU4J implementation of java.nio.charset.Charset is included as a Technology
|
||
Preview. Not all functionality from the java.nio.Charset interfaces is operational,
|
||
and some converters are known to mis-handle Unicode supplementary characters. Use with caution.
|
||
<p>
|
||
<p><b>New features</b>
|
||
<p>
|
||
See the <a href="http://www.icu-project.org/download/">ICU 3.8 download page</a> about new features in this release.
|
||
<p>
|
||
<h3 class="doc"><a name="license"></a>License Information</h3>
|
||
<p>
|
||
The ICU projects (ICU4C and ICU4J) use the X license. The X
|
||
license is <b>suitable for commercial use</b> and is a recommended free software license
|
||
that is compatible with the GNU GPL license. This became
|
||
effective with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J in
|
||
mid-2001. All new ICU releases will adopt the X license; previous ICU
|
||
releases continue to utilize the IPL (IBM Public License). Users
|
||
of previous releases of ICU who want to adopt new ICU releases will
|
||
need to accept the terms and conditions of the X license.
|
||
</p>
|
||
<p>
|
||
The main effect of the change is to provide GPL compatibility.
|
||
The X license is listed as GPL compatible, see the GNU page at
|
||
<a href="http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses">
|
||
http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses</a>.
|
||
This means that GPL projects can now use ICU code, it does <b>not</b>
|
||
mean that projects using ICU become subject to GPL.
|
||
</p>
|
||
<p>
|
||
The IBM version contains the essential text of the license, omitting the
|
||
X-specific trademarks and copyright notices. The full copy of <a
|
||
href="license.html">ICU's license</a> is included in the download
|
||
package.
|
||
</p>
|
||
<h3 class="doc"><a name="PlatformDependencies"></a>Platform Dependencies</h3>
|
||
<p> By default ICU4J depends on functionality that is only available
|
||
in J2SE 1.4 or later releases. Some new ICU4J features support types
|
||
introduced in J2SE 5, you can still use the same ICU4J binaries on JRE
|
||
1.4. We provide the ability to build a variant of ICU4J that will run
|
||
on JRE 1.3, but not all build targets work on that platform. Currently
|
||
1.1.x and 1.2.x JREs are unsupported and untested, and you use the
|
||
components on these JREs at your own risk.
|
||
<p>The table below shows operating systems and JRE/JDK versions currently
|
||
used by the ICU development team.
|
||
<p>
|
||
<table bgcolor="#CCCCFF">
|
||
<tr>
|
||
<th rowspan="2" bgcolor="#FFFFFF">Operating System</th>
|
||
<th colspan="5" bgcolor="#FFFFFF">Sun Java SE</th>
|
||
<th colspan="3" bgcolor="#FFFFFF">IBM Java SE</th>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">1.6.0</th>
|
||
<th bgcolor="#FFFFFF">1.5.0</th>
|
||
<th bgcolor="#FFFFFF">1.4.2</th>
|
||
<th bgcolor="#FFFFFF">1.4.1</th>
|
||
<th bgcolor="#FFFFFF">1.4.0</th>
|
||
<th bgcolor="#FFFFFF">1.5.0</th>
|
||
<th bgcolor="#FFFFFF">1.4.2</th>
|
||
<th bgcolor="#FFFFFF">1.4.1</th>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">AIX 5.2</th>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">AIX 5.3</th>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#CCCCFF"><em><b>Reference platform</b></em></td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">HP-UX 11 (PA-RISC)</th>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">HP-UX 11 (IA64)</th>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">Redhat Enterprise Linux 4 (x86)</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="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
</tr>
|
||
<tr bgcolor="#FFFFFF">
|
||
<th>Redhat Enterprise Linux 5 (x86)</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="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
</tr>
|
||
<tr bgcolor="#FFFFFF">
|
||
<th>Solaris 9 (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="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
</tr>
|
||
<tr bgcolor="#FFFFFF">
|
||
<th>Solaris 10 (SPARC)</th>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#CCCCFF"><em><b>Reference platform</b></em></td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">Windows XP</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="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#CCCCFF"><em><b>Reference platform</b></em></td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely tested</td>
|
||
</tr>
|
||
<tr>
|
||
<th bgcolor="#FFFFFF">Windows Vista</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="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#FFFFFF">-</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#DDDDFF">Regularly tested</td>
|
||
<td align="center" bgcolor="#EEEEFF">Rarely 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 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://www.icu-project.org/download/">ICU Downloads page</a>.
|
||
A packaged snapshot is named <b>icu4j-XXX-src.jar</b>, where XXX
|
||
is the release version number. Please unjar this file. It
|
||
will reconstruct the source directory.</li>
|
||
</ul>
|
||
<ul type="disc">
|
||
<li><b>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 downloads 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, <b>$icu4j_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">Charset</font> packages become part of the ICU4J charset 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">$icu4j_root/src/com/ibm/icu/charset<br>
|
||
<font color="red">Charset, API</font></th>
|
||
<td bgcolor="#ffffff" valign="baseline">Packages that provide Charset conversion
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">$icu4j_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
|
||
$icu4j_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">$icu4j_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">$icu4j_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">$icu4j_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">$icu4j_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">$icu4j_root/src/com/ibm/icu/util<br>
|
||
<font color="red">Core, API</font></th>
|
||
<td bgcolor="#ffffff" valign="baseline">Additional utility
|
||
classes:
|
||
<ul>
|
||
<li>Calendars - Gregorian, Buddhist, Coptic, Ethiopic, Hebrew, Islamic, Japanese, Chinese and others</li>
|
||
<li>Holiday</li>
|
||
<li>TimeZone</li>
|
||
<li>VersionInfo</li>
|
||
<li>Iteration</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">$icu4j_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">$icu4j_root/classes</th>
|
||
<td bgcolor="#ffffff" valign="baseline">contains all class files</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">$icu4j_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://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> – Detection of charset from a byte stream</li>
|
||
<li>International Calendars – <a
|
||
<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/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> – 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> – 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> – Rule-based, supports Thai</li>
|
||
<li><a
|
||
href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/Transliterator.html">Transliteration</a>
|
||
– 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>
|
||
& <a
|
||
href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/UnicodeDecompressor.html">Decompression</a>
|
||
– 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 place
|
||
<strong>icu4j-charsets.jar</strong> on your class path. No other files are needed.</p>
|
||
<p><b>Eclipse users:</b> See the ICU4J site for information on<a
|
||
href="http://www.icu-project.org/docs/eclipse_howto/eclipse_howto.html">
|
||
how to configure Eclipse</a> to build ICU4J.</p>
|
||
<p>To build ICU4J, you will need a J2SE SDK and the Ant build system.
|
||
We strongly recommend using the Ant build system to build ICU4J.
|
||
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
|
||
/usr/local.</p>
|
||
<ul>
|
||
<li>Install J2SE SDK 5.0. (You can use any version of J2SE SDK 1.4 or newer,
|
||
but for J2SE SDK 5.0 is required to enable the all available ICU4J features.)</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.6 or later.
|
||
<p>Installing Ant is straightforward. Download it (see <a
|
||
href="http://ant.apache.org/bindownload.cgi">http://ant.apache.org/bindownload.cgi</a>),
|
||
extract it onto your system, set some environment variables, and add
|
||
its bin directory to your path. For example: </p>
|
||
<pre>
|
||
set JAVA_HOME=C:\jdk1.5.0
|
||
set ANT_HOME=C:\ant
|
||
set PATH=%PATH%;%ANT_HOME%\bin</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 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>C:\icu4j>ant
|
||
Buildfile: build.xml
|
||
|
||
checkAntVersion:
|
||
|
||
warnAntVersion:
|
||
|
||
initBase:
|
||
[mkdir] Created dir: C:\icu4j\classes
|
||
[echo] java home: C:\jdk1.5.0
|
||
[echo] java version: 1.5.0
|
||
[echo] ant java version: 1.5
|
||
[echo] Apache Ant version 1.7.0 compiled on December 13 2006
|
||
[echo] ICU4JDEV with Windows XP 5.1 build 2600 Service Pack 2 on x86
|
||
[echo] clover initstring = '${clover.initstring}'
|
||
[echo] target runtime environment: J2SE15
|
||
[echo] Initialized at 2007-08-30 at 04:14:09 EDT
|
||
|
||
buildMangle:
|
||
[javac] Compiling 1 source file to C:\icu4j\classes
|
||
|
||
initSrc:
|
||
|
||
displayBuildEnvWarning:
|
||
|
||
doMangle:
|
||
[echo] Running source code preprocessor for [J2SE15]
|
||
|
||
init:
|
||
|
||
coreData:
|
||
[copy] Copying 1 file to C:\icu4j\classes\com\ibm\icu\impl\data
|
||
|
||
icudata:
|
||
[unjar] Expanding: C:\icu4j\src\com\ibm\icu\impl\data\icudata.jar into C:\ic
|
||
u4j\classes
|
||
[copy] Copying 1 file to C:\icu4j\classes\META-INF
|
||
|
||
durationdata:
|
||
[copy] Copying 16 files to C:\icu4j\classes\com\ibm\icu\impl\duration\impl\
|
||
data
|
||
|
||
core:
|
||
[javac] Compiling 317 source files to C:\icu4j\classes
|
||
[javac] Note: * uses or overrides a deprecated API.
|
||
[javac] Note: Recompile with -Xlint:deprecation for details.
|
||
|
||
BUILD SUCCESSFUL
|
||
Total time: 10 seconds</pre>
|
||
</blockquote>
|
||
<I>Note: The above output is an example. The numbers are likely to be different with the current version ICU4J.</I>
|
||
<p>The following are some targets that you can provide to <b>ant</b>.
|
||
For more targets run <code>ant -projecthelp</code> or see the build.xml file.</p>
|
||
<table bgcolor="#ccccff" border="0" cellpadding="3" frame="void"
|
||
width="623">
|
||
<tbody>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">all</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Build all targets.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">core</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Build the main class
|
||
files in the subdirectory <strong>classes</strong>. If no target is
|
||
specified, core is assumed.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">tests</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Build the test class
|
||
files.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">demos</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Build the demos.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">tools</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Build the tools.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">docs</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Run javadoc over the main
|
||
class files, generating an HTML documentation tree in the subdirectory <strong>doc</strong>.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">jar</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Create a jar archive <strong>icu4j.jar</strong>
|
||
in the root ICU4J directory containing the main class files.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">jarSrc</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Like the <strong>jar</strong>
|
||
target, but containing only the source files. </td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">jarDocs</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Like the <strong>jar</strong>
|
||
target, but containing only the docs. </td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">richedit</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Build the richedit core
|
||
class files and tests. </td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">richeditJar</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Create the richedit jar
|
||
file (which contains only the richedit core class files). The file <strong>richedit.jar</strong>
|
||
will be created in the <strong>./richedit</strong> subdirectory. Any
|
||
existing file of that name will be overwritten.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">richeditZip</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Create a zip archive of
|
||
the richedit docs and jar file for distribution. The zip file <strong>richedit.zip</strong>
|
||
will be created in the <strong>./richedit</strong> subdirectory. Any
|
||
existing file of that name will be overwritten.</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" bgcolor="#ffffff" valign="baseline">clean</th>
|
||
<td bgcolor="#ffffff" valign="baseline">Remove all built targets,
|
||
leaving the source.</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>For more information, read the Ant documentation and the <strong>build.xml</strong>
|
||
file.</p>
|
||
<p>After doing a build it is a good idea to run all the icu4j tests by
|
||
typing<br>
|
||
<tt>"ant check"</tt> or
|
||
"java -classpath classes com.ibm.icu.dev.test.TestAll -nothrow".</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="750">
|
||
<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<EFBFBD></b></th>
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
|
||
<td colspan="4">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">Package*</td>
|
||
<td valign="baseline">Main Classes<65> </td>
|
||
</tr>
|
||
</tbody>
|
||
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<b><font size="2">* com.ibm. should be prepended to the package names
|
||
listed.
|
||
<br>
|
||
<EFBFBD> Class name in bold indicates core service API. Only APIs in these classes are
|
||
fully supported.
|
||
<br>
|
||
<EFBFBD> Sizes are of the compressed jar file containing only this module.
|
||
These sizes are approximate for release 3.6.
|
||
</font></b>
|
||
<p><b>Modules:</b></p>
|
||
|
||
<table bgcolor="#ccccff" cellpadding="3" frame="void" width="750">
|
||
|
||
<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">465 KB</td>
|
||
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakIterator,
|
||
CanonicalIterator,
|
||
<b>Normalizer</b>,
|
||
Replaceable,
|
||
ReplaceableString,
|
||
SymbolTable,
|
||
UCharacterIterator,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
UnicodeSet,
|
||
UnicodeSetIterator,
|
||
UTF16
|
||
</td>
|
||
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
Freezable,
|
||
RangeValueIterator,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="left" valign="baseline">Collator</th>
|
||
<td align="left" valign="baseline">collator, collatorTests</td>
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.collator</td>
|
||
<td align="right" valign="baseline">1,911 KB</td>
|
||
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakDictionary,
|
||
BreakIterator,
|
||
CanonicalIterator,
|
||
<b>CollationElementIterator</b>,
|
||
<b>CollationKey</b>,
|
||
<b>Collator</b>,
|
||
DictionaryBasedBreakIterator,
|
||
Normalizer,
|
||
RawCollationKey,
|
||
Replaceable,
|
||
ReplaceableString,
|
||
RuleBasedBreakIterator,
|
||
<b>RuleBasedCollator</b>,
|
||
SymbolTable,
|
||
UCharacterIterator,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
UnicodeSet,
|
||
UnicodeSetIterator,
|
||
UTF16
|
||
</td>
|
||
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
ByteArrayWrapper,
|
||
CompactByteArray,
|
||
Freezable,
|
||
RangeValueIterator,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="left" valign="baseline">Calendar</th>
|
||
<td align="left" valign="baseline">calendar, calendarTests</td>
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.calendar</td>
|
||
<td align="right" valign="baseline">2,176 KB</td>
|
||
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.math:</td>
|
||
<td valign="baseline">
|
||
BigDecimal,
|
||
MathContext
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakIterator,
|
||
CanonicalIterator,
|
||
<b>ChineseDateFormat</b>,
|
||
<b>ChineseDateFormatSymbols</b>,
|
||
CollationElementIterator,
|
||
CollationKey,
|
||
Collator,
|
||
<b>DateFormat</b>,
|
||
<b>DateFormatSymbols</b>,
|
||
DecimalFormat,
|
||
DecimalFormatSymbols,
|
||
MessageFormat,
|
||
Normalizer,
|
||
NumberFormat,
|
||
PluralFormat,
|
||
PluralRules,
|
||
RawCollationKey,
|
||
Replaceable,
|
||
ReplaceableString,
|
||
RuleBasedCollator,
|
||
RuleBasedNumberFormat,
|
||
RuleBasedTransliterator,
|
||
<b>SimpleDateFormat</b>,
|
||
SymbolTable,
|
||
UCharacterIterator,
|
||
UFormat,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
UnicodeSet,
|
||
UnicodeSetIterator,
|
||
UTF16
|
||
</td>
|
||
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
AnnualTimeZoneRule,
|
||
<b>BasicTimeZone</b>,
|
||
<b>BuddhistCalendar</b>,
|
||
ByteArrayWrapper,
|
||
<b>Calendar</b>,
|
||
<b>ChineseCalendar</b>,
|
||
<b>CopticCalendar</b>,
|
||
Currency,
|
||
CurrencyAmount,
|
||
<b>DateRule</b>,
|
||
DateTimeRule,
|
||
<b>EasterHoliday</b>,
|
||
<b>EthiopicCalendar</b>,
|
||
Freezable,
|
||
<b>GregorianCalendar</b>,
|
||
<b>HebrewCalendar</b>,
|
||
<b>HebrewHoliday</b>,
|
||
<b>Holiday</b>,
|
||
<b>IndianCalendar</b>,
|
||
InitialTimeZoneRule,
|
||
<b>IslamicCalendar</b>,
|
||
<b>JapaneseCalendar</b>,
|
||
Measure,
|
||
MeasureUnit,
|
||
<b>RangeDateRule</b>,
|
||
RangeValueIterator,
|
||
<b>SimpleDateRule</b>,
|
||
<b>SimpleHoliday</b>,
|
||
<b>SimpleTimeZone</b>,
|
||
StringTokenizer,
|
||
<b>TaiwanCalendar</b>,
|
||
<b>TimeZone</b>,
|
||
TimeZoneRule,
|
||
TimeZoneTransition,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="left" valign="baseline">BreakIterator</th>
|
||
<td align="left" valign="baseline">breakIterator,
|
||
breakIteratorTests</td>
|
||
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.breakiterator</td>
|
||
<td align="right" valign="baseline">1,889 KB</td>
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
<b>BreakDictionary</b>,
|
||
<b>BreakIterator</b>,
|
||
CanonicalIterator,
|
||
<b>DictionaryBasedBreakIterator</b>,
|
||
Normalizer,
|
||
Replaceable,
|
||
ReplaceableString,
|
||
<b>RuleBasedBreakIterator</b>,
|
||
SymbolTable,
|
||
Transliterator,
|
||
UCharacterIterator,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
UnicodeSet,
|
||
UnicodeSetIterator,
|
||
UTF16
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
CompactByteArray,
|
||
Freezable,
|
||
RangeValueIterator,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
|
||
<th align="left" valign="baseline">Basic Properties</th>
|
||
<td align="left" valign="baseline">propertiesBasic,
|
||
propertiesBasicTests</td>
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.lang</td>
|
||
<td align="right" valign="baseline">554 KB</td>
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
<b>UCharacter</b>,
|
||
<b>UCharacterCategory</b>,
|
||
<b>UCharacterDirection</b>,
|
||
<b>UCharacterEnums</b>,
|
||
<b>UProperty</b>,
|
||
<b>UScript</b>,
|
||
<b>UScriptRun</b>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakDictionary,
|
||
BreakIterator,
|
||
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,
|
||
Freezable,
|
||
RangeValueIterator,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="left" valign="baseline">Full Properties</th>
|
||
<td align="left" valign="baseline">propertiesFull,
|
||
propertiesFullTests</td>
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.lang</td>
|
||
<td align="right" valign="baseline">1,829 KB</td>
|
||
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
<b>UCharacter</b>,
|
||
<b>UCharacterCategory</b>,
|
||
<b>UCharacterDirection</b>,
|
||
<b>UCharacterEnums</b>,
|
||
<b>UProperty</b>,
|
||
<b>UScript</b>,
|
||
<b>UScriptRun</b>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakDictionary,
|
||
BreakIterator,
|
||
DictionaryBasedBreakIterator,
|
||
<b>Normalizer</b>,
|
||
<b>Replaceable</b>,
|
||
<b>ReplaceableString</b>,
|
||
RuleBasedBreakIterator,
|
||
SymbolTable,
|
||
<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">
|
||
CompactByteArray,
|
||
Freezable,
|
||
<b>RangeValueIterator</b>,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
<b>ValueIterator</b>,
|
||
<b>VersionInfo</b>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="left" valign="baseline">Formatting</th>
|
||
|
||
<td align="left" valign="baseline">format, formatTests</td>
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.format</td>
|
||
<td align="right" valign="baseline">3,443 KB</td>
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.math:</td>
|
||
<td valign="baseline">
|
||
<b>BigDecimal</b>,
|
||
MathContext
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakIterator,
|
||
CanonicalIterator,
|
||
<b>ChineseDateFormat</b>,
|
||
<b>ChineseDateFormatSymbols</b>,
|
||
CollationElementIterator,
|
||
CollationKey,
|
||
Collator,
|
||
<b>DateFormat</b>,
|
||
<b>DateFormatSymbols</b>,
|
||
<b>DecimalFormat</b>,
|
||
<b>DecimalFormatSymbols</b>,
|
||
<b>DurationFormat</b>,
|
||
MeasureFormat,
|
||
<b>MessageFormat</b>,
|
||
Normalizer,
|
||
<b>NumberFormat</b>,
|
||
<b>PluralFormat</b>,
|
||
<b>PluralRules</b>,
|
||
RawCollationKey,
|
||
Replaceable,
|
||
ReplaceableString,
|
||
RuleBasedCollator,
|
||
<b>RuleBasedNumberFormat</b>,
|
||
<b>SimpleDateFormat</b>,
|
||
SymbolTable,
|
||
<b>UCharacterIterator</b>,
|
||
UFormat,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
UnicodeSet,
|
||
UnicodeSetIterator,
|
||
UTF16
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
AnnualTimeZoneRule,
|
||
BasicTimeZone,
|
||
<b>BuddhistCalendar</b>,
|
||
ByteArrayWrapper,
|
||
<b>Calendar</b>,
|
||
<b>ChineseCalendar</b>,
|
||
<b>CopticCalendar</b>,
|
||
<b>Currency</b>,
|
||
CurrencyAmount,
|
||
DateTimeRule,
|
||
<b>EthiopicCalendar</b>,
|
||
Freezable,
|
||
<b>GregorianCalendar</b>,
|
||
<b>HebrewCalendar</b>,
|
||
<b>IndianCalendar</b>,
|
||
InitialTimeZoneRule,
|
||
<b>IslamicCalendar</b>,
|
||
<b>JapaneseCalendar</b>,
|
||
Measure,
|
||
MeasureUnit,
|
||
RangeValueIterator,
|
||
<b>SimpleTimeZone</b>,
|
||
StringTokenizer,
|
||
<b>TaiwanCalendar</b>,
|
||
TimeArrayTimeZoneRule,
|
||
<b>TimeZone</b>,
|
||
TimeZoneRule,
|
||
TimeZoneTransition,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="left" valign="baseline">StringPrep, IDNA</th>
|
||
<td align="left" valign="baseline">stringPrep, stringPrepTests</td>
|
||
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.stringprep</td>
|
||
<td align="right" valign="baseline">488 KB</td>
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
<b>StringPrep</b>,
|
||
<b>StringParseException</b>,
|
||
SymbolTable,
|
||
UCharacterIterator,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
UnicodeSet,
|
||
UnicodeSetIterator,
|
||
UTF16
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
Freezable,
|
||
RangeValueIterator,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
ValueIterator,
|
||
VersionInfo
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
|
||
<th align="left" valign="baseline">Transforms</th>
|
||
<td align="left" valign="baseline">transliterator, transliteratorTests</td>
|
||
<td align="left" valign="baseline">com.ibm.icu.dev.test.translit</td>
|
||
<td align="right" valign="baseline">890 KB</td>
|
||
</tr>
|
||
<tr bgcolor="#ffffff">
|
||
|
||
<td colspan="4" valign="top">
|
||
<table border="0" cellpadding="5">
|
||
<tbody>
|
||
<tr>
|
||
<td valign="baseline">icu.lang:</td>
|
||
<td valign="baseline">
|
||
UCharacter,
|
||
UCharacterCategory,
|
||
UCharacterDirection,
|
||
UCharacterEnums,
|
||
UProperty,
|
||
UScript
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.text:</td>
|
||
<td valign="baseline">
|
||
BreakDictionary,
|
||
BreakIterator,
|
||
DictionaryBasedBreakIterator,
|
||
Normalizer,
|
||
<b>Replaceable</b>,
|
||
<b>ReplaceableString</b>,
|
||
RuleBasedBreakIterator,
|
||
RuleBasedCollator,
|
||
<b>RuleBasedTransliterator</b>,
|
||
StringTransform,
|
||
SymbolTable,
|
||
<b>Transliterator</b>,
|
||
UCharacterIterator,
|
||
UForwardCharacterIterator,
|
||
UnicodeFilter,
|
||
UnicodeMatcher,
|
||
<b>UnicodeSet</b>,
|
||
<b>UnicodeSetIterator</b>,
|
||
<b>UTF16</b>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td valign="baseline">icu.util:</td>
|
||
<td valign="baseline">
|
||
CaseInsensitiveString,
|
||
CompactByteArray,
|
||
Freezable,
|
||
<b>RangeValueIterator</b>,
|
||
StringTokenizer,
|
||
ULocale,
|
||
UResourceBundle,
|
||
UResourceBundleIterator,
|
||
UResourceTypeMismatchException,
|
||
<b>ValueIterator</b>,
|
||
VersionInfo
|
||
</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 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 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 classes files in
|
||
$icu4j_root/classes/com/ibm/icu/dev folder</li>
|
||
<li>The list of module build targets can be obtained by running the
|
||
command: <code>ant -projecthelp</code></li>
|
||
</ul>
|
||
<h3 class="doc"><a name="tryingout"></a>Trying Out ICU4J</h3>
|
||
<p><strong>Note:</strong> the demos provided with ICU4J are for the
|
||
most part undocumented. This list can show you where to look, but
|
||
you'll
|
||
have to experiment a bit. The demos (with the
|
||
exception of richedit) are <strong>unsupported</strong> and may change
|
||
or disappear without notice.</p>
|
||
<p>The icu4j.jar file contains only the core ICU4J classes, not the
|
||
demo classes, so unless you build ICU4J there is little to try out.
|
||
</p>
|
||
<h4>Charset</h4>
|
||
To try out the <strong>Charset</strong> package, build <strong>icu4j.jar</strong> and <strong>icu4j-charsets.jar</strong> using 'jar' target.
|
||
You can use the charsets by placing these files on your classpath.
|
||
<blockquote><tt>java -cp $icu4j_root/icu4j.jar:$icu4j_root/icu4j-charsets.jar <your program></tt></blockquote>
|
||
<h4>Rich Edit</h4>
|
||
To try out the <strong>richedit</strong> package, first build the
|
||
richeditJar target.
|
||
This is a 'runnable' jar file. To run the richedit demo, type:
|
||
<blockquote><tt>java -jar $icu4j_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 $icu4j_root/richedit/richedit.jar
|
||
com.ibm.richtext.demo.EditDemo [-swing][file]</tt></blockquote>
|
||
<p>This will use an awt GUI, or a swing GUI if
|
||
<tt>-swing</tt> is passed on the command line. It will open a text
|
||
file if one is provided, otherwise it will open a blank page. Click
|
||
to type.</p>
|
||
<p>
|
||
You can add tabs to the tab ruler by clicking in the ruler while
|
||
holding down the control key.
|
||
Clicking on an existing tab changes between left, right, center, and
|
||
decimal tabs. Dragging
|
||
a tab moves it, dragging it off the ruler removes it.</p>
|
||
<p>
|
||
You can experiment with complex text by using the keymap functions.
|
||
Please note that these are mainly for demo purposes, for real work
|
||
with Arabic or Hebrew you will want to use an input method. You will
|
||
need to use a font that supports Arabic or Hebrew, 'Lucida Sans'
|
||
(provided
|
||
with Java) supports these languages.</p>
|
||
<h4>Other demos</h4>
|
||
<p>The other demo programs are <strong>not supported</strong> and
|
||
exist only to let you
|
||
experiment with the ICU4J classes. First, build ICU4J using <tt>ant all</tt>.
|
||
Then try
|
||
one of the following:
|
||
</p>
|
||
<ul>
|
||
<li><tt>java -classpath classes com.ibm.icu.dev.demo.calendar.CalendarApp</tt></li>
|
||
<li><tt>java -classpath classes com.ibm.icu.dev.demo.holiday.HolidayCalendarDemo</tt></li>
|
||
<li><tt>java -classpath classes com.ibm.icu.dev.demo.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 JRE resource information. (Note,
|
||
ICU4J 2.8 to 3.4, time zone information depends on the underlying JRE).
|
||
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>icudt38b</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>icudt38b/coll</tt>,
|
||
as a set of <tt>".res"</tt> files.</li>
|
||
<li>The <b>rule-based transliterator data</b> is under the directory
|
||
<tt>icudt38b/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>icudt38b/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>
|
||
<li>The <b>character set converter data</b> is under the directory
|
||
<tt>icudt38b</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 data</b> is named <tt>zoneinfo.res</tt> under
|
||
the directory <tt>icudt38b</tt>.</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.icu-project.org/download/">ICU4C</a></li>
|
||
<li>Compilers and tools required for <a
|
||
href="http://source.icu-project.org/repos/icu/icu/tags/release-3-8/readme.html#HowToBuild">building ICU4C</a>.</li>
|
||
<li>J2SE SDK version 1.4 or above (5.0 is recommended)</li>
|
||
<li>Perl version 5 or above.</li>
|
||
</ul>
|
||
<h5> Procedure</h5>
|
||
<ol>
|
||
<li> Download and build ICU4C on a Windows machine. For instructions on
|
||
downloading and building ICU4C, please click <a
|
||
href="http://dev.icu-project.org/cgi-bin/viewcvs.cgi/icu/readme.html?view=co#HowToBuild">here</a>.</li>
|
||
<li> Change directory to <I>$icu4c_root</I>/source/tools/genrb. <I>$icu4c_root</I>
|
||
is the root directory of ICU4C source package.</li>
|
||
<li> Launch gendtjar.pl from that directory itself with the command <br>
|
||
gendtjar.pl --icu-root=<I>$icu4c_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.5.0\bin
|
||
--icu4j-root=\work\icu4j --version=3.8<br>
|
||
Execution of gendtjar.pl script will create the required jar files in
|
||
the $icu4c_root\source\tools\genrb\temp directory.</li>
|
||
<li> Move icudata.jar to <I>$icu4j_root</I>/src/com/ibm/icu/impl/data
|
||
directory.</li>
|
||
<li> Move testdata.jar to <I>$icu4j_root</I>/src/com/ibm/dev/data
|
||
directory.</li>
|
||
<li> Build resources target of ant to unpack the jar files with the
|
||
following command. <br>
|
||
<I>$ant_home</I>/bin/ant resources</li>
|
||
</ol>
|
||
<h5> Generating Data from CLDR </h5>
|
||
<I> Note: This procedure assumes that all 3 sources are in sibling directories</I>
|
||
<ol>
|
||
<li>Checkout CLDR. $cldr_root in the following steps is the root directory where
|
||
the CLDR source files checked out.</li>
|
||
<li>Update <I>$cldr_root</I>/common to 'release-1-5-0-1' tag</li>
|
||
<li>Update <I>$cldr_root</I>/tools to 'release-1-5-0-1' tag</li>
|
||
<li>Checkout ICU with tag 'release-3-8'</li>
|
||
<li>Checkout ICU4J with tag 'release-3-8'</li>
|
||
<li>Build ICU4J</li>
|
||
<li>Build ICU4C</li>
|
||
<li>Change to <I>$cldr_root</I>/tools/java directory</li>
|
||
<li>Build CLDR using ant after pointing ICU4J_CLASSES env var to the newly build ICU4J</li>
|
||
<li>cd to <I>$icu4c_root</I>/source/data directory</li>
|
||
<li>Follow the instructions in the cldr-icu-readme.txt</li>
|
||
<li>Build ICU data from CLDR</li>
|
||
<li>cd to <I>$icu4c_root/source/tools/genrb</I></li>
|
||
<li>run gendtjar.pl as explained in the previous section.</li>
|
||
<li>cd to <I>$icu4j_root</I> dir</li>
|
||
<li>Build and test icu4j</li>
|
||
</ol>
|
||
|
||
<h3 class="doc"><a name="WhereToFindMore"></a>Where to Find More
|
||
Information</h3>
|
||
<p><a href="http://www.ibm.com/software/globalization/icu/">http://www.ibm.com/software/globalization/icu/</a>
|
||
is a
|
||
pointer to general information about the International Components for
|
||
Unicode in Java </p>
|
||
<p><a href="http://www.ibm.com/software/globalization/">http://www.ibm.com/software/globalization/</a>
|
||
is a pointer to
|
||
information on how to make applications global. </p>
|
||
<h3 class="doc"><a name="SubmittingComments"></a>Submitting Comments,
|
||
Requesting Features and
|
||
Reporting Bugs</h3>
|
||
<p>Your comments are important to making ICU4J successful. We are
|
||
committed
|
||
to fixing any bugs, and will use your feedback to help plan future
|
||
releases.</p>
|
||
<p>To submit comments, request features and report bugs, contact us
|
||
through the <a
|
||
href="http://www.icu-project.org/contacts.html">ICU Support
|
||
mailing list</a>.<br>
|
||
While we are not able to respond individually to each comment, we do
|
||
review all comments.</p>
|
||
<br>
|
||
<br>
|
||
<h2>Thank you for your interest in ICU4J!</h2>
|
||
<br>
|
||
<hr align="center" size="2" width="100%">
|
||
<p><I><font size="-1">Copyright © 2002-2007 International Business
|
||
Machines Corporation and others. All Rights
|
||
Reserved.<br>
|
||
4400 North First Street, San José, CA 95193, USA
|
||
</font></I></p>
|
||
</body>
|
||
</html>
|