ICU-1570 updated ICU4J readme.html file

X-SVN-Rev: 7222
This commit is contained in:
Doug Felt 2001-11-30 20:48:48 +00:00
parent f544712400
commit 3a331aeafc

View File

@ -23,35 +23,39 @@ Reserved. </p>
<h3><u>Contents</u></h3>
<ul type="disc">
<li><a href="#introduction">Introduction</a></li>
<li><a href="#introduction">Introduction to ICU4J (International Components for Unicode for Java)</a></li>
<li><a href="#license">License Information</a></li>
<li><a href="#WhatContain">What the International Components for Unicode for Java Contains</a></li>
<li><a href="#API">API overview</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 tructure 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="#WhereToFindMore">Where to Find More Information</a></li>
<li><a href="#SubmittingComments">Submitting Comments, Requesting Features and Reporting
Bugs</a></li>
</ul>
<h3><a NAME="introduction"></a><u>Introduction</u></h3>
<h3><a NAME="introduction"></a><u>Introduction to ICU4J (International Components for Unicode for Java)</u></h3>
<p>
In today's global market, it is crucial to develop and maintain programs that support a wide variety of national languages. Customers prefer software and web pages in their own languages. Studies confirm that this leads to increased sales. Java provides a very strong foundation for global
programs (IBM and the ICU4J team played a key role in providing such technology into Sun's standard Java version).
</p>
<p>Today's global market demands programs that support a wide variety
of languages and national conventions.&nbsp; Customers prefer software
and web pages tailored to their needs, and studies confirm that
this leads to increased sales.&nbsp; Java provides a strong
foundation for global programs, and IBM and the ICU4J team played
a key role in providing globalization technology to Sun for use in
Java. </p>
<p>
However, Java does not yet provide some features that are required in some products. The ICU4J library is an add-on to the regular JVM that provides the following tools:
But Java does not yet provide all the features that some products require.&nbsp; ICU4J is an add-on library that extends Java's globalization technology by providing the following tools:
<ul>
<li>
Unicode Normalization NFC, NFD, NFKD, NFKC
<blockquote>Produces canonical text representations, needed for XML and the net</blockquote>
<blockquote>Produces canonical text representations, needed for XML and the net.</blockquote>
<li>
International Calendars Arabic, Buddhist, Hebrew, and Japanese
<blockquote>Required for correct presentation of dates in some countries.</blockquote>
<li>
Number Format Enhancements Scientific Notation, Spelled-out, etc.
<blockquote>Enhances the normal Java number formatting. The spell-out format is used
Number Format Enhancements Scientific Notation, Spelled-out Numbers
<blockquote>Enhances standard Java number formatting. The spelled-out format is used
for checks and similar documents.</blockquote>
<li>Enhanced word-break detection Rule-based, supports Thai
@ -59,7 +63,7 @@ for checks and similar documents.</blockquote>
<li>Unicode Text Compression Standard compression of Unicode text
<blockquote>Suitable for large numbers of small fields, where LZW and similar schemes
do not apply</blockquote>
do not apply.</blockquote>
</ul>
In some cases, the above support has been rolled into a later release of
Java. For example, the Thai word-break is now in Java 1.4. However, if you
@ -68,12 +72,11 @@ are using Java 1.2, you can use the ICU4J package until you upgrade to 1.4.
<h3><a name=license></a><u>License Information</u></h3>
<p>
The ICU projects (ICU4C and ICU4J) have changed their licenses from the IPL (IBM Public License) to the X license. The X license is a non-viral and recommended free software license that is compatible with the GNU GPL license. This is effective starting with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J. All previous ICU releases will continue to utilize the IPL. New ICU releases will adopt the X license. The users of previous releases of ICU will need to accept the terms and conditions of the X license in order to adopt the new ICU releases.
The ICU projects (ICU4C and ICU4J) now use the X license.&nbsp; The X license is a non-viral and recommended free software license that is compatible with the GNU GPL license.&nbsp; 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).&nbsp; 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>
The main effect of the change is to provide GPL compatibility.&nbsp; 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>
</p>
<p>
The text of the X license is available at <a href=http://www.x.org/terms.htm>http://www.x.org/terms.htm</a>. The IBM version contains the essential text of the license, omitting the X-specific trademarks and copyright notices.
@ -82,21 +85,33 @@ The text of the X license is available at <a href=http://www.x.org/terms.htm>htt
For more details please see the <a href=http://oss.software.ibm.com/icu/press.html>press announcement</a> and the <a href=http://oss.software.ibm.com/icu/project_faq.html#license>Project FAQ</a>.
</p>
<h3><a NAME="WhatContain"></a><u>What the International Components for Unicode for Java
Contains</u></h3>
<h3><a NAME="PlatformDependencies"></a><u>Platform Dependencies</u></h3>
<p>There are two ways to download the ICU4J releases,
<p>Parts of ICU4J depend on functionality that is only available in Java2 (JDK1.2) or
later, although some components work under 1.1.&nbsp; However, all components should be
compiled using a Java 1.2.x or 1.3.x compiler, as even components that run using a 1.1.x JVM may require
language features that are only present in Java2.&nbsp; Currently 1.1.x is unsupported and
untested, and you use the components on a 1.1.x system at your own risk.</p>
<p>ICU4J is currently not compatible with JDK1.4 (in beta as of this writing). We anticipate adding
support for JDK1.4 in a future release.</p>
<h3><a NAME="obtaining"></a><u>How to Download ICU4J</u></h3>
<p>There are two ways to download the ICU4J releases.
<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 ICU4J version of the ICU4J source code.&nbsp; These versions are tested
more thoroughly than day-to-day development builds, and they are packaged in zip files for
convenient download.&nbsp; These packaged files can be found at <a href="http://oss.software.ibm.com/icu4j/download/index.html">http://oss.software.ibm.com/icu4j/download/index.html</a>.
<br>
If packaged snapshot is named <b>ICU4JXXXXXX.zip </b>, XXXXXX is the release version
number. <br>
Please unzip this file.&nbsp; It will re-construct the source directory. </li>
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.&nbsp; These versions are tested more thoroughly than
day-to-day development builds, and they are packaged in zip files
for convenient download.&nbsp; These packaged files can be found
at <a href="http://oss.software.ibm.com/icu4j/download/index.html">http://oss.software.ibm.com/icu4j/download/index.html</a>.&nbsp; If a packaged snapshot is named <b>ICU4JXXXXXX.zip</b>, where XXXXXX is
the release version number.&nbsp; Please unzip this file.&nbsp; It
will reconstruct the source directory. </li>
</ul>
<ul type="disc">
@ -151,6 +166,8 @@ cvs logout</code></pre>
href="http://oss.software.ibm.com/icu4j/download/index.html">http://oss.software.ibm.com/icu4j/download/index.html</a>
</p>
<h3><a NAME="WhatContain"></a><u>The Structure and Contents of ICU4J</u></h3>
<p>Below, <b>$Root</b> is the placement of the icu directory in your file system, like
&quot;drive:\...\icu4j&quot; in your environment. &quot;drive:\...&quot; stands for any
drive and any directory on that drive that you chose to install icu4j into. </p>
@ -160,62 +177,57 @@ drive and any directory on that drive that you chose to install icu4j into. </p>
<table BORDER="1" CELLPADDING="3">
<tr>
<td>readme.html<br>
this file</td>
<td>describes the International Components for Unicode for Java</td>
(this file)</td>
<td>A description of ICU4J (International Components for Unicode for Java)</td>
</tr>
<tr>
<td>license.html</td>
<td>contains the X license</td>
<td>The X license, used by ICU4J</td>
</tr>
<tr>
<td>build.bat</td>
<td>A convenience batch file for Windows for building ICU4J</td>
</tr>
<tr>
<td>build.bat</td>
<td>A convenience bat file for building ICU4J with Ant on Windows.</td>
<td>A convenience bat file for building ICU4J with Ant on Windows</td>
</tr>
<tr>
<td>build.sh</td>
<td>A convenience sh file for building ICU4J with Ant on Unix.</td>
<td>A convenience sh file for building ICU4J with Ant on Unix</td>
</tr>
<tr>
<td>build.xml</td>
<td>Ant build file. <a href="#HowToInstallJavac">How to Install and Build</a> for more information</td>
<td>Ant build file. See <a href="#HowToInstallJavac">How to Install and Build</a> for more information</td>
</tr>
<tr>
<td>buildall.bat</td>
<td>A bat file for building ICU4J with Javac. This is not recommended</td>
<td>A bat file for building ICU4J with Javac (not recommended)</td>
</tr>
</table>
<p><b>The source directories mirror package structure of the code.&nbsp; The following
directories contain source code and data files:</b> </p>
<p><b>The source directories mirror the package structure of the code.&nbsp; They contain source code and data files:</b> </p>
<table BORDER="1" CELLPADDING="3" WIDTH="623">
<tr>
<td>$Root/richeditDist/</td>
<td>Documentations and stubs used for building the RichEdit demos in package com.ibm.richtext.demo</td>
<td>Documentation and stubs used to build the RichEdit demo jar file in package com.ibm.richtext.demo.</td>
</tr>
<tr>
<td>$Root/src/data/</td>
<td>Various data files used to generate ICU4J classes.&nbsp; Most of the files contain Unicode information that is available from <a href="http://www.unicode.org/">http://www.unicode.org/</a>. Used only by tools and tests in package com.ibm.tools and com.ibm.test.</td>
<td>Various data files used to generate ICU4J classes.&nbsp; Most of the files contain Unicode information that is available from <a href="http://www.unicode.org">http://www.unicode.org</a>. Used only by tools and tests in package com.ibm.tools and com.ibm.test.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/data</td>
<td>Data files used by the BreakIterator tests and demos in package com.ibm.demo.rbbi and com.ibm.test.rbbi</td>
<td>Data files used by the BreakIterator tests and demos in package com.ibm.demo.rbbi and com.ibm.test.rbbi.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/demo</td>
<td>Demonstration applications and Applets for calendar, holidays, rule-based breakiterators, rule-based number format and transliterator. This directory is gradually being deprecated, the contents will be shifted to the package com.ibm.icu.demo.</td>
<td>Demonstration applications and applets for calendar, holidays, rule-based breakiterators, rule-based number formatters, and transliterators. This package is gradually being deprecated, the contents will be shifted to com.ibm.icu.demo.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/icu/demo</td>
<td>New folder for demonstration applications and Applets. The classes in the package com.ibm.demo will eventually be shifted to here.</td>
<td>New location of demonstration applications and applets. The classes in com.ibm.demo will eventually be moved here.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/icu/internal</td>
<td>Contains only a class com.ibm.icu.UInfo which is used in the normalization builder, com.ibm.tools.normalizer.NormalizerBuilder. </td>
<td>Contains the class com.ibm.icu.UInfo which is used in the normalization builder, com.ibm.tools.normalizer.NormalizerBuilder.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/icu/test</td>
@ -227,25 +239,25 @@ directories contain source code and data files:</b> </p>
</tr>
<tr>
<td>$Root/src/com/ibm/icu/richtext</td>
<td>Styled text display. This folder includes demos, test and GUIs for displaying text.</td>
<td>Styled text editing package. This includes demos, test and GUIs for editing and displaying styled text.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/test</td>
<td>Tests for various ICU4J components.. For information about running the
tests, see $Root/src/com/ibm/test/TestAll.java. The folder will be gradually deprecated, The classes will be shifted to com.ibm.icu.test.</td>
<td>Tests for various ICU4J components.&nbsp; For information about running the
tests, see $Root/src/com/ibm/test/TestAll.java. The package will gradually be deprecated, and the classes moved to com.ibm.icu.test.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/text</td>
<td>The following components:
<td>Main package, containing the following components:
<ul>
<li>Arabic shaping
<li>Break iterators
<li>Date formats
<li>Number formats
<li>Transliterators
<li>Break iteration
<li>Date formatting
<li>Number formatting
<li>Transliteration
<li>Normalization
<li>String manipulations
<li>StringSearch
<li>String manipulation
<li>String search
<li>Unicode compression
<li>Unicode character properties
<li>Unicode sets
@ -254,15 +266,15 @@ directories contain source code and data files:</b> </p>
</tr>
<tr>
<td>$Root/src/com/ibm/textlayout</td>
<td>Text layout</td>
<td>Text layout, used by the styled text editing package.</td>
</tr>
<tr>
<td>$Root/src/com/ibm/tools</td>
<td>Various tools used to generate ICU4J classes and data for the modules below.
<td>Various tools used to generate ICU4J classes and data for the following modules:
<ul>
<li>Unicode compression
<li>Normalization
<li>Rule-based Iterators
<li>Rule-based iterators
<li>Transliteration
</ul>
</td>
@ -273,7 +285,7 @@ directories contain source code and data files:</b> </p>
</tr>
</table>
<p><b>The following directories are populated when you've built everything:</b> </p>
<p><b>Building ICU4J creates and populates the following directories:</b> </p>
<table BORDER="1" CELLPADDING="3">
<tr>
@ -294,15 +306,15 @@ directories contain source code and data files:</b> </p>
<li>Data that is &quot;raw&quot; data goes into <strong>$Root/src/data</strong>. This
includes things like the raw Unicode database. <strong>$Root/src/data</strong> does <em>not</em>
contain <strong>.java</strong> source files.</li>
<li>Data that is in the form of a Java class, typically a ResourceBundle, but not
necessarily, goes into one of the packages <code>com.ibm.util.resources</code> or <code>com.ibm.text.resources</code>,
<li>Data that is in the form of a Java class, typically (but not necessarily) a ResourceBundle,
goes into one of the packages <code>com.ibm.util.resources</code> or <code>com.ibm.text.resources</code>,
depending on whether the associated code lives in <code>com.ibm.util</code> or <code>com.ibm.text</code>.</li>
<li>Data that is not part of ICU4J proper (or its base tool set), but rather part of a test,
sample, or demo, should go near the source code of its owner. This makes it easy to ship a
core ICU4J release without optional components.</li>
</ul>
<h3><u><a name="API"></a>API Overview</u></h3>
<h3><u><a name="API"></a>Where to get Documentation</u></h3>
<p>The complete API documentation is available on the ICU4J web site:
@ -325,48 +337,42 @@ directories contain source code and data files:</b> </p>
compression on English Unicode text</li>
</ul>
<h3><a NAME="PlatformDependencies"></a><u>Platform Dependencies</u></h3>
<p>Parts of ICU4J depend on functionality that is only available in Java2 (JDk1.2) or
later, although some components work under 1.1.&nbsp; However, all components should be
compiled using a Java2 compiler as even components that run using a 1.1.x JVM may require
language features that are only present in 1.2.&nbsp; Currently 1.1.x is unsupported and
untested and you use the components on a 1.1.x system at your own risk. </p>
<h3><a NAME="HowToInstallJavac"></a><u>How to Install and Build</u></h3>
<p>To install ICU4J, simply place the prebuilt jar file <strong>icu4j.jar</strong> on your
Java CLASSPATH.&nbsp; No other files are needed.</p>
<p>The prerequisites for building ICU4J are a working JDK and the Ant build system:
<p>We strongly recommend using the Ant build system to build ICU4J. If you don't have
them you will need to install the JDK and Ant:</p>
<ul>
<li>First install a recent JDK, at least version 1.2.</li>
<li>Next install the <a href="http://jakarta.apache.org/ant/"><strong>Ant</strong></a> build
<li>It's recommended to install both the JDK and Ant somewhere <em>outside</em> the ICU4J
directory, to keep them out of CVS's hair. For example, on Linux you might install these
in /usr/local.</li>
<li>Install a recent JDK, version 1.2.x or 1.3.x will work. ICU4J does not yet build with JDK 1.4.</li>
<li><p>Next install the <a href="http://jakarta.apache.org/ant/"><strong>Ant</strong></a> build
system, part of the Apache Software Foundation's <a href="http://jakarta.apache.org/"><strong>Jakarta</strong></a>
project. Ant is a portable, Java-based build system similar to make. ICU4J uses Ant
because it introduces no other dependencies, it's portable, and it's easier to manage than
a collection of makefiles. We currently build ICU4J using a single makefile on both
Windows 9x and Linux using Ant.</li>
<li>Installing Ant is straightforward. Download it (see <a
Windows 9x and Linux using Ant.</p>
<p>Installing Ant is straightforward. Download it (see <a
href="http://jakarta.apache.org/downloads/binindex.html">http://jakarta.apache.org/downloads/binindex.html</a>),
extract it onto your system, set some environment variables, and add its bin directory to
your path. For example:<pre> set JAVA_HOME=C:\jdk1.2.2
your path. For example:<pre> set JAVA_HOME=C:\jdk1.3.1
set ANT_HOME=C:\jakarta-ant
set PATH=%PATH%;%ANT_HOME%\bin</pre>
set PATH=%PATH%;%ANT_HOME%\bin</pre></p>
<p>See the current Ant documentation for details.</p>
</li>
<li>It's recommended to install both the JDK and Ant somewhere <em>outside</em> the ICU4J
directory, to keep them out of CVS's hair. For example, on Linux you might install these
in /usr/local.</li>
</ul>
<p>Once Ant is 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.</p>
<p>Once the JDK and Ant are installed, building is just a matter of
typing <strong>ant</strong> in the ICU4J root directory. This causes
the Ant build system to perform a build as specified by the file
<strong>build.xml</strong>, located in the ICU4J root directory. You
can give Ant options like -verbose, and you can specify targets. Ant
will only build what's been changed and will resolve dependencies
properly. For example:</p>
<blockquote>
<pre>F:\icu4j&gt;ant tests
Buildfile: build.xml
@ -420,6 +426,24 @@ Completed in 19 seconds</pre>
will be created in the directory <em>above</em> the root ICU4J directory, where YYYYMMDD
is today's date. Any existing file of that name will be overwritten.</td>
</tr>
<tr>
<td>richeditDocs</td>
<td>Run javadoc over the richedit class files, generating an HTML documentation tree in the
subdirectory <strong>./richeditDist/richedit/doc</strong>.</td>
</tr>
<tr>
<td>richeditJar</td> <td>Create a jar archive
<strong>richedit.jar</strong> in the
<strong>./richeditDist/richedit</strong> subdirectory, containing
the richedit class files.</td>
</tr>
<tr>
<td>richeditZip</td>
<td>Create a zip archive of the richedit docs and richedit jar file for distribution, excluding
unwanted things like CVS directories and emacs backup files. The zip file <strong>richedit.zip</strong>
will be created in the <strong>./richeditDist</strong> subdirectory. Any existing file of
that name will be overwritten.</td>
</tr>
<tr>
<td>zipsrc</td>
<td>Like the <strong>zip</strong> target, without the docs and the jar file. The zip file <strong>icu4jsrcYYYYMMDD.zip</strong>
@ -435,13 +459,13 @@ Completed in 19 seconds</pre>
<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 tests by typing <br>&quot;java
-classpath $Root/classes -DUnicodeData=$Root/src/data/unicode com.ibm.test.TestAll&quot;. </p>
<p>After doing a build it is a good idea to run all the icu4j tests by typing <br>&quot;java
-classpath $Root/classes -DUnicodeData=$Root/src/data/unicode com.ibm.test.TestAll&quot;.</p>
<p>(As an alternative to using Ant, you can build simply by running javac and javadoc
directly. This is not recommended, but a Windows batch file &quot;buildall.bat&quot;
exists to get you started if you're really allergic to build systems. You may have to
create destination directories.)</p>
<p>(If you are allergic to build systems, as an alternative to using
Ant you can build by running javac and javadoc directly. This
is not recommended. You may have to manually create destination
directories.)</p>
<h3><a name="WhereToFindMore"></a><u>Where to Find More Information</u></h3>
@ -454,18 +478,18 @@ information on how to make applications global. </p>
<h3><a NAME="SubmittingComments"></a><u>Submitting Comments, Requesting Features and
Reporting Bugs</u></h3>
<p>Your comments are important to making this release successful.&nbsp; We are committed
to fixing any bugs, and will also use your feedback to help plan future releases. </p>
<p>Your comments are important to making ICU4J successful.&nbsp; 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://oss.software.ibm.com/icu4j/archives/index.html>ICU4J mailing list</a>.<br>
While we are not able to respond individually to each comment, we do review all comments. </p>
While we are not able to respond individually to each comment, we do review all comments.</p>
<p>Thanks for your interest in ICU4J!</p>
<hr size="2" width="100%" align="center">
<p>Copyright © 2001 International Business Machines Corporation and others. All Rights
Reserved. <br>
10275 N De Anza Blvd., Cupertino, CA 95014 <br>
All rights reserved. </p>
10275 N De Anza Blvd., Cupertino, CA 95014</p>
<hr size="2" width="100%" align="center">
</body>