| <!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>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‡</b></th> |
| </tr> |
| <tr bgcolor="#ffffff"> |
| |
| <td colspan="4"> |
| <table> |
| <tbody> |
| <tr> |
| <td valign="baseline">Package*</td> |
| <td valign="baseline">Main Classes† </td> |
| </tr> |
| </tbody> |
| |
| </table> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <b><font size="2">* com.ibm. should be prepended to the package names |
| listed. |
| <br> |
| † Class name in bold indicates core service API. Only APIs in these classes are |
| fully supported. |
| <br> |
| ‡ Sizes are of the compressed jar file containing only this module. |
| These sizes are approximate for release 3.6. |
| </font></b> |
| <p><b>Modules:</b></p> |
| |
| <table bgcolor="#ccccff" cellpadding="3" frame="void" width="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> |