______________________________________________________________________
IBM DEVELOPER KIT FOR LINUX(R), JAVA(TM) TECHNOLOGY EDITION,
VERSION 1.1.8 - README
______________________________________________________________________

The IBM Developer Kit for Linux(R), Java(TM) Technology Edition,
Version 1.1.8 is based on Sun Microsystems' Java 1.1.8 maintenance
level and provides the Sun Microsystems, Inc.(TM) Java Environment on
Linux distributions containing Linux kernel 2.2 and GNU C runtime
library 2.1. It has been tested on:

  Red Hat(R) Linux 6.2(TM)
  Caldera Systems, Inc.(R) OpenLinux(TM) 2.2

See section 2.0 of this README, Installation Considerations, for
further details.

The Developer Kit for Linux is provided as a gzipped tar package:

    ibm-jdk-l118-linux-x86.tgz

Depending on the executable file you installed, the IBM build and
version number can be obtained by entering the following at a shell
prompt:

  o  java -fullversion
     (If you are using the java executable file.)

  o  jre -d
     (If you are using the jre executable file.)

______________________________________________________________________

CONTENTS

 1.0  OVERVIEW
 1.1    Version Compatibility
 1.2    Contents of the Developer Kit for Linux
 1.3    The Just-In-Time (JIT) Compiler

 2.0  INSTALLATION CONSIDERATIONS

 3.0  EURO SYMBOL SUPPORT
 3.1    Platform Support
 3.2    Unicode Support
 3.3    Collation of Currency Symbols

 5.0  USING THE DEVELOPER KIT
 5.1    Specifying the Path to a Tool
 5.2    Setting the CLASSPATH
 5.3    Running Applets with the Applet Viewer
 5.4    Debugging Applets with the Applet Viewer

 6.0  SHIPPING JAVA APPLICATIONS
 6.1    Including a Runtime Environment with Your Application

 7.0  TROUBLESHOOTING

 8.0  KNOWN LIMITATIONS

 9.0  BUG REPORTING

10.0  NOTICES

11.0  TRADEMARKS


1.0  OVERVIEW
______________________________________________________________________

The Developer Kit for Linux is a development environment for writing
applets and applications that conform to Sun's Java 1.1 Core
Application Program Interface (API).

1.1  Version Compatibility
______________________________________________________________________

In general, any applet or application that ran in alphaVersion 1.1.6
of the Developer Kit for Linux, should run correctly in this version.
Applets that depend on Sun's Java 1.1 APIs only work on browsers that
support Java 1.1 APIs.

For more details, see the document on compatibility at the following
Sun Web site:

   http://java.sun.com/products/jdk/1.1/compatibility.html


1.2  Contents of the Developer Kit for Linux
______________________________________________________________________

The following list describes the contents of the Developer Kit
for Linux.

  RUNTIME - Core Classes (classes.zip)
    CAUTION:  DO NOT UNZIP THIS FILE!
    This file contains all of the compiled .class files for the
    platform and must remain zipped for the compiler and interpreter
    to properly access the class files within it.

  SOURCE FILES - Public Classes (src.zip file or src directory)
    These are the source files used to create the core classes
    included in the classes.zip file. These source files are provided
    for information only, to help developers learn to use the Java
    programming language. They do not include the private java.*
    classes or the sun.* classes, and therefore cannot be compiled
    into a complete classes.zip file.

    Do not modify these classes; instead, create subclasses and override
    where you need to.

  TOOLS
    -  Java Compiler (javac):
       Compiles programs written in the Java programming language into
       bytecodes (compiled Java code).

    -  Java Interpreter (java):
       Executes Java bytecodes.  The Java Interpreter runs programs
       written in the Java programming language.

    -  Java Runtime Interpreter (jre):
       Similar to the Java Interpreter (java), but intended for users
       who do not require all the development-related options available
       in the Java tool.

    -  Java Applet Viewer (appletviewer):
       Use for testing and running applets.

    -  Java Debugger (jdb):
       Helps debug your Java programs.

    -  Class File Disassembler (javap):
       Disassembles compiled files and prints a representation of
       the bytecodes.

    -  Java Documentation Generator (javadoc):
       Parses the declarations and documentation comments in a set of
       source files and produces a set of HTML pages describing the
       public and protected classes, interfaces, constructors, methods,
       and fields. Also produces a class hierarchy and an index of all
       members.

    -  C Header and Stub File Generator (javah):
       Attaches native methods to code written in the Java programming
       language.

    -  Java Archive Tool (jar):
       Combines many class files and other resources into a single jar file.

    -  Digital Signing Tool (javakey):
       Manages entities, including their keys, certificates, and the trust
       associated with them.

    -  Native-To-ASCII Converter (native2ascii):
       Converts a native encoding file to an ASCII file that includes the
       \udddd Unicode notation.

    -  Java Remote Method Invocation (RMI) Stub Converter (rmic):
       Generates objects from the names of compiled classes that contain
       remote object implementations.

    -  Java Remote Object Registry (rmiregistry):
       Creates and starts a remote object registry on the specified port
       of the current host.

    -  Serial Version Command (serialver):
       Returns the serialVersionUID for one or more classes
       in a form suitable for copying into an evolving class.

    -  Various C libraries and include files.

  JAVA DOCUMENTATION AND DEMOS
    -  Demo directory:
         awt-1.1         AWT demos
         i18n            Internationalization demos
         Animator        General-purpose animator
         ArcTest         Test arc drawing and filling
         BarChart        Simple bar-chart applet
         Blink           Blinking, multicolored text
         CardTest        Test card layout manager
         Clock           Analog clock
         DitherTest      Test image dithering
         DrawTest        Draw points and lines
         Fractal         Fractal figures
         GraphLayout     Graph layout by iterated relaxation
         GraphicsTest    Test graphics operations
         ImageMap        Live-feedback image map
         JumpingBox      Catch the jumping box
         MoleculeViewer  Three-dimensional chemical model viewer
         NervousText     Nervous text
         SimpleGraph     Draw a simple graph
         SortDemo        Animated sorting algorithms
         SpreadSheet     Simple spreadsheet
         TicTacToe       Tic-tac-toe game
         WireFrame       Three-dimensional wire-frame model viewer

    -  README:
       This file.

    -  COPYRIGHT:
       Copyright notice for the Developer Kit for Linux software.

    -  LICENSE:
       License agreement for the Developer Kit for Linux software.

       Use the more command from a shell prompt to view the agreement:
           more LICENSE

       Use the lpr command if you wish to print the agreement:
           lpr LICENSE

       The license agreement might not be readable when viewed in
       some editors, such as vi.

    -  FIXES.LST:
       A text file that describes any defects fixed
       after the initial release of this version.

    Note:  This README file and the accompanying license, copyright
           files, demo directory, and source code (src.zip) are the
           only documentation included in this Developer Kit for
           Linux. You can look at Sun's software documentation by
           visiting the Sun Web site, or you might be able to download
           Sun's Software documentation package from the following
           Sun Web site:

             http://java.sun.com/products/jdk/1.1/

           The documentation package is designed to be extracted into
           the Developer Kit for Linux software installation
           directory. If you download the ZIP file archive version, be
           sure to preserve the file path names when you extract the
           files from the archive. If you use pkunzip, specify the -d
           option.

  1.3  The Just-In-Time (JIT) Compiler
  ____________________________________________________________________

  The Developer Kit for Linux includes the IBM Just-In-Time (JIT)
  compiler (libjitc.so). All Developer Kit for Linux tools use the JIT
  by default. After installation, you can determine whether or not the
  JIT will be used. To disable the JIT, pass the -nojit option to the
  tool by entering either of the following at a shell prompt:

    o  java -nojit myClass
       (If you are using the java executable file.)

    o  jre -nojit MyClass
       (If you are using the jre executable file.)

  To determine if the JIT is enabled, and depending on which
  executable file you are using, type either of the following
  commands:

    o  java -fullversion
    o  jre -d

  If no JIT is in use, one of the following messages is displayed:

    o  (JIT disabled)
    o  compiler = disabled

  If a JIT is in use, one of the following messages is displayed:

    o  (JIT enabled: jitc)
    o  compiler = enabled: jitc

  For the java tool, if you type "export JAVA_COMPILER=NONE" at the
  shell prompt, you will disable the JIT. (NONE must be uppercase.)
  The jre tool ignores JAVA_COMPILER. Both tools use the java.compiler
  property to determine JIT usage. See the appropriate tool
  documentation.



2.0  INSTALLATION CONSIDERATIONS
______________________________________________________________________

After you have downloaded the gzipped tar package to a temporary
directory, you can unpack it using the tar command with the 'zxvf'
options.

The native threads support used in the implementation of the
java.lang.Thread class requires that Linux Kernel 2.2 or greater and
GNU C Runtime Library (glibc) version 2.1 or greater be available on
the target Linux system.

Both of the Linux distributions tested contain kernel 2.2 or above
and glibc 2.1 or above.

Other distributions must upgrade the GNU C Runtime Library (glibc) to
version 2.1 or greater before using the Developer Kit for Linux.
Documentation and source for building glibc 2.1 might be found at:

    ftp://glibc.cygnus.com/pub/glibc

If you have a version of the Linux operating system that does not have
kernel 2.2 or above, information on upgrading the kernel might be found at:

    http://www.kernel.org/



3.0  EURO SYMBOL SUPPORT
______________________________________________________________________

In order to take advantage of the euro symbol support, the operating
system must support the euro symbol. This might require that you
install standard ISO-8859-15 (Latin-9 or Latin-0). For further
information, see the HOWTO for your distribution of Linux.

The following sections give further information on euro symbol support.


3.1  Unicode Support
______________________________________________________________________

The Unicode character for the euro is u'20ac'.


3.2  Collation of Currency Symbols
______________________________________________________________________

Collation of currency symbols traditionally follows the English
collation order of the symbol name. Thus 'cent' is followed by
'dollar'. According to this scheme, the euro symbol will sort
immediately following the dollar and dong currency symbols and before
the French franc.


5.0  USING THE DEVELOPER KIT
______________________________________________________________________

The main Developer Kit for Linux tools are programs that are run from
a shell prompt; they do not have a Graphical User Interface (GUI).

The following sections give information on using the Developer Kit
for Linux.


5.1  PATH Considerations
______________________________________________________________________

After installing the Developer Kit for Linux software, you can run a
tool by typing its name at a shell prompt with a filename as an argument.

You can specify the path to a tool by typing the path in front of the
tool each time. For example, if the Developer Kit for Linux software
is installed in /usr/java/bin, you can compile a file named
myfile.java, by typing the following at a shell prompt:

  /usr/java/bin/javac myfile.java

Alternatively, you could add the string /usr/java/bin to the PATH
environment variable. Then you could compile the file myfile.java file
by typing the following at a shell prompt:

  javac myfile.java

The PATH environment variable enables Linux to find executable files,
such as javac, java, and javadoc, from any current directory.  To
display the current value of your PATH, enter the following at a
shell prompt:

  echo $PATH


To change the PATH environment variable, edit your shell startup
file (usually .bash_profile, .profile, or .login depending on the
shell) and add the absolute path to the /usr/java/bin directory to
the PATH environment variable. Log on again or run the updated shell
script to activate the new PATH setting.


5.2  CLASSPATH Considerations
______________________________________________________________________

The CLASSPATH tells the Runtime Environment for Linux and the
Developer Kit for Linux tools, such as java, javac, and javadoc, where
to find the Java class libraries. If you keep the bin and lib
directories under the same parent directory level, the executable
files will find the classes.

You need to explicitly set the CLASSPATH only if:

   o  You require a different library, such as one you develop

   o  You change the location of the bin and lib directories such that
      they no longer have the same common parent directory

   o  You plan to develop or run applications using different runtime
      environments on the same system

To display the current value of your CLASSPATH, type the following at
a shell prompt:

  echo $CLASSPATH


If you plan to develop and run applications using different runtime
environments, you need to explicitly set the CLASSPATH (and PATH)
appropriately for each application. If multiple applications using
different runtime environments will be running simultaneously, be
sure each application is run in its own shell.

If you will be running only one version of Java at a time, a shell
script can be used to switch between the different runtime environments.



5.3  Running Applets with the Applet Viewer
______________________________________________________________________

Applet Viewer allows you to run one or more applets that are called by
reference in a Web page (HTML file) using the APPLET tag. The Applet
Viewer finds the APPLET tags in the HTML file and runs the applets, in
separate windows, as specified by the tags.

Because Applet Viewer is for viewing applets, it cannot display an
entire Web page that contains numerous HTML tags. It parses only the
APPLET tag and no other HTML on the Web page.

To run an applet with Applet Viewer, go to a shell prompt, change
to the directory where you installed the Developer Kit for Linux
(usually /usr/java) and run Applet Viewer, passing the file name or
URL of the Web page as its argument.

Here is an example of how to invoke the Applet Viewer on a file-based
Web page under Linux. Go to a shell prompt, change to the directory
where the Developer Kit for Linux was installed (usually /usr/java)
and type the following:

  ./bin/appletviewer $HOME/myapplet.html

This example shows how to invoke the Applet Viewer on a URL-based Web
page.  To launch an applet, type the following at a shell prompt:

  ./bin/appletviewer http://java.sun.com/applets/NervousText/example1.html


5.4  Debugging Applets with the Applet Viewer
______________________________________________________________________

You can debug applets using the -debug option of Applet Viewer. When
debugging applets, it is best to invoke Applet Viewer from the
directory that contains the applet's HTML file. For example:

    cd demo/TicTacToe
    ../../bin/appletviewer -debug example1.html

You might find documentation on the debugger and its API at the
following Sun Web site:

    http://java.sun.com/products/jdk/1.1/debugging/


6.0  SHIPPING JAVA APPLICATIONS
______________________________________________________________________

A Java application, unlike a Java applet, cannot rely on a Web browser
for installation and runtime services. When you ship a Java application,
your software package will probably consist of the following parts:

  o  Your own class, resource, and data files.
  o  A runtime environment.
  o  An installation procedure or program.


6.1  Including a Runtime Environment with Your Application
______________________________________________________________________

To run your application, a user needs the Runtime Environment for
Linux.  The Developer Kit for Linux software contains a runtime
environment. However, you should not assume that your users have the
Developer Kit for Linux software installed. You can download the
Runtime Environment for Linux from the following Web site:

  http://www.ibm.com/java

Your Developer Kit for Linux software license does not allow you to
redistribute the Developer Kit for Linux software files.  The Runtime
Environment for Linux is available for redistribution as a separate
package.


7.0  TROUBLESHOOTING
______________________________________________________________________

Here are some troubleshooting tips:


  o  Unable to load libjava.so library

     If you receive a message indicating that the libjava.so library
     could not be loaded because of a symbol not found (such as
     __bzero), you have a down-level version of the GNU C Runtime
     Library, glibc, installed. The Developer Kit for Linux thread
     implementation requires glibc version 2.1 or greater. See Section
     2.0, Installation Considerations, in this README for information
     on getting the appropriate version of the library.

  o  If the AppletViewer does not load applets, type the following
     at a shell prompt:

         java -verbose sun.applet.AppletViewer

     This command lists the classes that are being loaded. From this
     output, you can determine which class the Applet Viewer is trying
     to load and where it is trying to load it from. Check to make sure
     that the class exists and is not corrupted in some way.

  o  Fatal Error Message:

     If you receive one of the following fatal error messages while
     running java, javac, or appletviewer:

       -  Exception in thread NULL
       -  Unable to initialize threads: cannot find class
          java/lang/Thread

     Check your CLASSPATH environment variable to see if it lists
     classes from an older release.

     If you are bypassing the launch shell scripts in /java/bin and
     using the executables in /java/bin/linux/native_threads directly,
     you need to explicitly set the CLASSPATH as follows:

         export CLASSPATH=.:/usr/java/lib/classes.zip


8.0  KNOWN LIMITATIONS
______________________________________________________________________


  o Red Hat Linux 6.0 does not set the LANG variable for the current
    locale. If this is not set correctly, certain Unicode characters
    are not displayed properly from the non-ASCII set of characters.
    To make this work properly, set the LANG variable in your shell
    before starting a Java application or applet.

    For example, to set the German locale:

       export LANG=de_DE

    The English/US locale can be set by:

       export LANG=en_US

    Even though certain locales might work using the LANG variable,
    this version of the Developer Kit for Linux has not been tested
    on any locale other than US English.

  o The Developer Kit for Linux implements Java threads as native threads
    which results in each thread being a separate Linux process.  If the
    number of Java threads exceeds the maximum number of processes allowed,
    your program might get an error message, a SIGSEGV error, or simply
    hang.

    The maximum number of threads available is determined by the minimum of:

      -  The user processes setting (ulimit -u) in
         /etc/security/limits.conf

      -  The limit MAX_TASKS_PER_USER defined in
         /usr/include/linux/tasks.h  (change requires Linux kernel to be
         recompiled)

      -  The limit PTHREAD_THREADS_MAX defined in libpthreads.so
         (change requires Linux kernel to be recompiled)

    However, you might run out of virtual storage prior to reaching the
    maximum number of threads.  Additional information on adjusting
    these limits might be available on the Web page
    http://www.volano.com/linux.html

  o If a Java application is terminated with a Ctrl-C by the user,
    a number of processes might be left orphaned.

  o The Runtime for Linux tries to determine what window manager
    is being used in Linux and place windows on the screen appropriately.
    Occasionally, as is the case with the Enlightenment window manager,
    this might result in windows being positioned partially off the screen.

  o Scroll bar behavior in some windows might appear to be jumpy and
    awkward if you drag the slider rather than click on the scroll bar
    arrows.  For instance, the scroll bar might return to the top of the
    page and then back to its expected position.  As the scroll bar
    reaches the bottom, the scrolled information might return to the top.

  o The javap program, when run on an interface, duplicates the string
    "interface" in the result.  For example, running javap on
    "java.lang.Runnable" produces:

     public interface interface java.lang.Runnable extends java.lang.Object...

  o Displaying dialog boxes created with Swing might result in a noticeable
    delay of a few seconds before they are actually shown on the screen.

  o On Caldera OpenLinux 2.2, you might get a SIGSEGV if the Developer Kit
    for Linux uses an incorrect value for either the JAVA_HOME or CLASSPATH
    environment variables.  To insure the correct values are used, edit
    the /etc/zshenv file and comment out the following lines by adding a
    # at the beginning of each line:

       # [ -n "$JAVA_HOME" ]&&[ -d $JAVA_HOME/bin ] && _q=($_q $JAVA_HOME/bin)

    and

       # if [ -n "$JAVA_HOME" ]; then
       #  if [ -r $JAVA_HOME/lib/classes.zip ]; then
       #    CLASSPATH=$JAVA_HOME/lib/classes.zip
       #    export CLASSPATH
       #  fi
       # fi

  o On Caldera OpenLinux 2.2, when a window is minimized no image appears
    on the icon in the toolbar.

  o Key Event results involving the ALT key differ when using different
    window managers in Linux and from those in other operating systems.
    In the Enlightenment window manager, Alt-A and Shift-Alt-A produce
    different modifiers, and Ctrl-Alt-A produces no key event at all.
    However, using the WindowMaker window manager, Ctrl-Alt-A produces
    a key event.

    On the Linux X Window System, the keymap is set to: 64 0xffe9 (Alt_L)
    0xffe7 (Meta_L), and 113 0xffea (Alt_R) 0xffe8 (Meta_R). You can check
    this by typing the following at a shell prompt:

         xmodmap -pk

    This is why the Developer Kit for Linux considers that Meta is being
    pressed together with Alt. As a workaround you can remove the Meta_x
    mapping by typing the following at a shell prompt:

         xmodmap -e "keysym Alt_L = Alt_L" -e "keysym Alt_R = Alt_R"

    Note: This workaround might affect other X Window applications running
    on the same display if it utilizes the Meta-key that was removed.


    o JNI invocation API usage from multi-threaded applications:

    The IBM JVM for linux makes use of an LDT (locale descriptor table) for 
    efficient variable access. The LDT is set up at JVM start-up. However, 
    due to a current deficiency in the implementation of LDT-manipulation and 
    pthread's, the LDT must be set up BEFORE any pthreads are created. This is
    no problem when launching 'java' from the command-line. However, if the 
    JVM is created from an external application, through JNI_CreateJavaVM(), 
    then the application must ensure that an LDT is initialised prior to 
    creating any pthreads. If this is not done, then crashes can occur,
    typically during a later call to JNI_AttachCurrentThread(). If the 
    application is not multi-threaded, then there is no problem.

    The LDT can be initialised by an early call to the following function:

#define LDT_INIT

#ifdef LDT_INIT
#include <asm/ldt.h>
#include <linux/unistd.h>
_syscall3( int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount )
#define MODLDT_WRTNEW	0x11

void ldt_init()
{
	struct modify_ldt_ldt_s ldts;

	ldts.entry_number	= 0;
	ldts.base_addr		= 0;
	ldts.limit		= 0;
	ldts.seg_32bit		= 0;
	ldts.contents		= 0;
	ldts.read_exec_only	= 1;
	ldts.limit_in_pages	= 0;
	ldts.seg_not_present	= 1;
	ldts.useable		= 0;
	if (modify_ldt(MODLDT_WRTNEW, &ldts, sizeof(ldts)) == -1) {
		perror("ldt_init: modify_ldt");
	}
}
#endif

For example:

main(int argc, char *argv[])
{
   ...
#ifdef LDT_INIT
   ldt_init();
#endif
   ...


9.0  BUG REPORTING
________________________________________________________________________

Bugs should be reported to the ibm.software.java.linux news group. This 
newsgroup is availble from news server news.software.ibm.com.

When reporting a bug the following information should be provided:

a) Describe in detail what you are doing, what you expect to happen, and 
what is actually happening.

b) Describe precisely how to reproduce the problem.

c) A javacore file either from the application that fails or if this
is not possible, from any java application. (A javacore file will be 
generated automatically when there is a crash. The user can generate a 
javacore file by sending a SIGQUIT to the java process. Send a SIGQUIT
with CTRL-\ from the command shell, or kill -3 <pid> from the command line.)

d) Make a testcase available (the simpler this is the faster we can address
the problem).

e) If your e-mail address is different from the one given in the newsgroup,
please provide this also.


10.0  NOTICES
________________________________________________________________________

This edition applies to the IBM Developer Kit for Linux, Java(TM)
Technology Edition, Version 1.1.8 and to all subsequent releases
and modifications until otherwise indicated in new editions.

Copyright International Business Machines Corporation 1999. All rights
reserved.

Note to U.S. Government Users Restricted Rights -- Use, duplication
or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

Consult your local IBM representative for information on the products
and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that
only that IBM product, program, or service may be used. Any functionally
equivalent product, program, or service that does not infringe any IBM
intellectual property right may be used instead. However, it is the
users responsibility to evaluate and verify the operation of any
non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject
matter in this document. The furnishing of this document does not give
you any license to these patents. You can send license inquiries, in
writing, to:

  IBM Director of Licensing
  IBM Corporation
  North Castle Drive
  Armonk, NY  10504-1758
  U.S.A.

For license inquiries regarding double-byte (DBCS) information,
contact the IBM Intellectual Property Department in your country or
send inquiries, in writing, to:

  IBM World Trade Asia Corporation Licensing
  2-31 Roppongi 3-chome, Minato-ku
  Tokyo 106, Japan

The following paragraph does not apply to the United Kingdom or any
other country where such provisions are inconsistent with local law:

  INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
  PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR
  FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow
  disclaimer of express or implied warranties in certain
  transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or
typographical errors. Changes are periodically made to the
information herein; these changes will be incorporated in new editions
of the information. IBM may make improvements and/or changes in the
product(s) and/or the program(s) described in this information at any
time without notice.

Any references in this information to non-IBM Web sites are provided
for convenience only and do not in any manner serve as an endorsement
of those Web sites. The materials at those Web sites are not part of
the materials for this IBM product and use of those Web sites is at
your own risk.

IBM may use or distribute any of the information you supply in any
way it believes appropriate without incurring any obligation to you.

Licensees of this program who wish to have information about it
for the purpose of enabling (i) the exchange of information between
independently created programs and other programs (including this one)
and (ii) the mutual use of the information which has been exchanged,
should contact:

  JTCMAIL@uk.ibm.com
  [Hursley Java Technology Center (JTC) contact]

Such information may be available, subject to appropriate terms and
conditions, including in some cases, payment of a fee.

The licensed program described in this document and all licensed
material available for it are provided by IBM under terms of the
IBM Customer Agreement, IBM International Program License Agreement
or any equivalent agreement between us.

Any performance data contained herein was determined in a controlled
environment. Therefore, the results obtained in other operating
environments may vary significantly. Some measurements may have been
made on development-level systems and there is no guarantee that these
measurements will be the same on generally available systems.
Furthermore, some measurement may have been estimated through
extrapolation. Actual results may vary.  Users of this document
should verify the applicable data for their specific environment.

Information concerning non-IBM products was obtained from the
suppliers of those products, their published announcements or other
publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other
claims related to non-IBM products.  Questions on the capabilities of
non-IBM products should be addressed to the suppliers of those
products.

All statements regarding IBMs future direction or intent are subject
to change or withdrawal without notice, and represent goals and
objectives only.

All IBM prices shown are IBMs suggested retail prices, are current
and are subject to change without notice.  Dealer prices may vary.


11.0  TRADEMARKS
______________________________________________________________________

The following terms are trademarks of International Business Machines
Corporation in the United States, or other countries, or both:

   IBM

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc.
in the United States, other countries, or both.

Other company, product, and service names may be trademarks or service
marks of others.

________________________________________________________________________

Copyright (c) 1997, 1999 Sun Microsystems, Inc.
901 San Antonio Rd., Palo Alto, CA 94303 USA.
All rights reserved.

(c) Copyright IBM Corporation 1999, All rights reserved.
________________________________________________________________________

END-OF-README-FILE
________________________________________________________________________
