IBM(R) Runtime Environment for Windows(R), Java (TM) 2 Technology Edition, Version 1.3.1, 32-bit version
- README -


Note: Before using this information and the product it supports, be sure to read the general information under Notices.

This edition of the README applies to IBM Developer Kit for Windows, Java 2 Technology Edition, Version 1.3.1, 32-bit version and to all subsequent releases and modifications until otherwise indicated in new editions.

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

(c) Copyright International Business Machines Corporation, 1999, 2002. All rights reserved.

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


This README file provides information about the Runtime Environment package provided with IBM(R) Developer Kit for Windows(R), Java(TM) 2 Technology Edition, Version 1.3.1, 32-bit version. Use this README file if you plan to distribute the Runtime Environment with your product.

The Runtime Environment is supported on the following products:


Contents

  • Overview
  • Files included with the Runtime Environment
  • The just-in-time (JIT) compiler
  • Disabling the JIT
  • Enabling the JIT
  • Determining whether the JIT is enabled
  • Obtaining the IBM build and version number
  • Invoking the Runtime Environment
  • Redistribution requirements
  • The Java Runtime Interpreter
  • System properties
  • Runtime example
  • Installing your application on a user's system
  • Specifying garbage collection policy
  • Pause time
  • Pause time reduction
  • Environments with very full heaps
  • Further information about garbage collection
  • Running Java applications with native assistive technologies
  • Runtime documentation
  • Notices
  • Trademarks

  • Overview

    The Runtime Environment contains the Java Virtual Machine (JVM), Sun Microsystems Java classes, and supporting files. The Runtime Environment does not contain all the classes found in the Developer Kit package.


    Files included with the Runtime Environment

    The Runtime Environment includes .dll files plus classes to support a Java program at runtime. The Runtime Environment does not include any of the development tools, such as appletviewer or javac, or classes that would pertain only to a development system.

    See Redistribution requirements for information about files that must be redistributed with Java programs.


    The just-in-time (JIT) compiler

    The JIT compiler generates machine code dynamically for frequently used bytecode sequences in a Java application or applet during execution. The JIT compiler (jitc.dll) is enabled by default.

    Disabling the JIT

    You can disable the JIT to help in the isolation of a problem with a Java application, an applet, or the compiler itself.

    There are two ways to disable the JIT:

    Enabling the JIT

    To enable the JIT, type the following at a command prompt:

        set JAVA_COMPILER=jitc
    

    Determining whether the JIT is enabled

    To verify whether or not the JIT is enabled, type the following at a command prompt:

        java -version
    

    If the JIT is in use, a message is displayed that includes the following:

        JIT enabled: jitc
    

    If the JIT is not in use, the following message is displayed:

        JIT disabled
    

    Obtaining the IBM build and version number

    The IBM build and version number can be obtained by typing the following at a command prompt:

        java -version
    

    Invoking the Runtime Environment

    To run a Java application, type the following at a command prompt:

        java classname
    

    where classname is the name of the Java class file (Java application) that you want to run. For information about parameters you can use when invoking the java tool, see The Java Runtime Interpreter.

    Note: If you did not install the Runtime Environment as the system JVM, you must first set the path to include the appropriate directories. To update the path, type the following at a command prompt:

        set path=javadir\jre\bin;%path%
    

    where javadir is the directory where the Runtime Environment package is installed. By default, this directory is C:\Program Files\IBM\Java131.


    Redistribution requirements

    When you redistribute the Runtime Environment, you are required to include files from the following package:

    For specific information about the files that must be redistributed, see the license agreement that accompanies this product.

    The term required means that licensees who distribute the runtime must include those files with their program, whether or not their program ever uses those files.

    The Runtime Environment includes the \bin and \lib directories and their subdirectories. These two directories and their subdirectories must reside in the same directory. The bin directory contains executable files and native libraries. The lib directory contains the classes and property files.

    All files in the bin and lib directories are required for redistribution.

    Note: The native code C runtime library, msvcrt.dll, is located in the Windows system directory. Be sure that file is in your Windows system directory. The location of this directory varies on different operating systems, but is usually:


    The Java Runtime Interpreter

    The java tool invokes the Java Runtime Interpreter for executing Java applications. The syntax for starting the java tool is as follows:

    An alternative for the java tool, javaw, is available. The javaw tool is identical to the java tool, except that it does not invoke a console window. The syntax for starting the javaw tool is as follows:

        javaw [options] classname <args>
    

    Options for the java tool are as follows:


    System properties

    The system property ibm.jvm.bootclasspath can be set using the -D option described in the The Java Runtime Interpreter section. The value of this property is used as an additional search path, inserted between any value defined by -Xbootclasspath/p: and the bootclass path. The bootclass path is either the default, or that defined using the -Xbootclasspath: option.


    Runtime example

    The Sun Web page contains a "Hello World" example. The example demonstrates how to create a simple Java application that runs on and is bundled with the Java Runtime Environment. The Sun Web site is http://java.sun.com and you can find the "Hello World" example by searching on "Hello World" and "Notes for Developers".

    The example shows how to make a simple, seamless transition from developing an application with a Developer Kit to deploying it with the Runtime Environment.


    Installing your application on a user's system

    In your product you must provide a way to:

    If you redistribute the Runtime Environment, you must make sure that your installation procedure does not overwrite an existing installation (unless the existing Java Runtime Environment is an older version).

    The preferred approach is to take the files contained in the redistributable Runtime Environment zip file, ibm-jre-n131p-win32-x86.zip, and install them in the same directory structure. Be sure to include all the files in the bin and lib directories and their subdirectories. These directories are described in Redistribution requirements. The Runtime Environment software can only be redistributed if all these files are included. In effect, when you ship your application, it has its own copy of the Runtime Environment.

    If you use this approach, do not try to emulate the installation steps performed by the Runtime Environment installer.

    Note: When you install the Runtime Environment, you must record program information in the Windows Registry, as follows:


    Specifying garbage collection policy

    This Developer Kit introduces the -Xgcpolicy JVM runtime option for specifying garbage collection policy.

    -Xgcpolicy takes two values, optthruput (the default) and optavgpause. The option controls garbage collector behavior, making tradeoffs between throughput of the application and overall system and the pause times caused by garbage collection.

    The format of the option and its values is:

    -Xgcpolicy:optthruput
    and
    -Xgcpolicy:optavgpause

    Pause time

    When an application's attempt to create an object cannot be satisfied immediately from the available space in the heap, the garbage collector is responsible for identifying unreferenced objects (garbage), deleting them, and returning the heap to a state in which the immediate and subsequent allocation requests can be satisfied quickly. Such garbage collection cycles introduce occasional unexpected pauses in the execution of application code. As applications grow in size and complexity, and heaps become correspondingly larger, this garbage collection pause time tends to grow in size and significance. The default garbage collection value, optthruput, delivers very high throughput to applications, but at the cost of these occasional pauses, which can vary from a few milliseconds to many seconds, depending on the size of the heap and the quantity of garbage.

    Pause time reduction

    The optavgpause value substantially reduces the time spent in these garbage collection pauses, as well as limiting the effect of increasing heap size on the length of the garbage collection pause. This is particularly relevant to configurations with large heaps. (Consider a heap as large when it is at least 1 GB.) The pause times are reduced by overlapping garbage collection activities with normal program execution. This overlapping results in a small reduction to application throughput.

    Environments with very full heaps

    If the Java heap becomes nearly full, and there is very little garbage to be reclaimed, requests for new objects might not be satisfied quickly because there is no space immediately available. If the heap is operated at near-full capacity, application performance might suffer regardless of which of the above options is used; and, if requests for more heap space continue to be made, the application receives an Out of Memory exception, which results in JVM termination if the exception is not caught and handled. In these situations, you are recommended either to increase the heap size using the -Xmx option or to reduce the number of application objects in use.

    Further information about garbage collection

    For information on heap size tuning and the implications of garbage collection for application performance, see:


    Running Java applications with native assistive technologies

    Sun provides the Java Access Bridge to give native Windows assistive technologies, such as screen readers, access to the Java Accessibility support in a Java application. These native Windows assistive technologies must have been written to make calls to the Java Access Bridge.

    The Java Access Bridge available from Sun includes an installer, which places five files in the correct directories: access-bridge.jar, jaccess.jar, accessibility.properties, JavaAccessBridge.dll and WindowsAccessBridge.dll.

    If you have already installed the IBM Accessibility Bridge (JawBridge), which allows the Windows 2000 Magnifier to function with Swing applications, and you want it to run at the same time as the Java Access Bridge, edit the line in the accessibility.properties file to read:

    assistive_technologies=com.sun.java.accessibility.AccessBridge, JawBridge Comment out the line with a leading # to deactivate both bridges.

    This Web site tells you how to how to download the Java Access Bridge:


    Runtime documentation

    Each property file contains comments that describe what the file is useful for and how to modify it.


    Notices

    This information was developed for products and services offered in the U.S.A.

    IBM may not offer the products, services, or features discussed in this document in other countries. 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:

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

    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:

    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.


    Trademarks

    IBM is a trademark of International Business Machines Corporation in the U.S., or other countries, or both.

    Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. The Java technology is owned and exclusively licensed by Sun Microsystems, Inc.

    Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.

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