HP-UX Java™ SDK Version 1.3.0.02 for Itanium Release Notes


» Back to HP-UX Java™ Archived Releases – Release Notes

Release Notes HP-UX SDK, for the Java™2 Platform Developer's Release Version 1.3.0.02 (Classic edition) for HP-UX 11i Version 1.5 for the Itanium Process Family (IPF)

Release notes are provided with the software and as a standalone file on this web site. The file on the web site will be the most up-to-date file.

These release notes contain information on "Features," "Installation," "Usage Documentation," and "Problem Fixes and Descriptions."

Table of Contents

» Features
» Contents of SDK Developer's Release 1.3.0.02 IPF
» Features of SDK 1.3

» FastSwing Feature
» JPDA
» Supported APIs
» IDL Compiler
» JNDI
» ORB Support
» RMI
» RMI/IIOP

» HP's Product Versioning

» Installation

» Patches
» Minimum System Recommendation
» Installation Instructions
» File Structure

» Usage Documentation

» Supported Tools and Options
» Non-Standard Options and HP Specifics
» Threads
» CLASSPATH
» Compatibility between Release 1.3 and Previous Releases
» Migrating from Java 1.1 to Java 2
» JAR Files
» Using Font Property Files
» Support for Locales
» Japanese Localizaton
» Date/Time Methods - New Defaults
» Starting the X Font Server in X Windows Unix
» Using JPDA
» Manually Launching the Application VM
» Closing a Socket When Accept or Read is Pending
» Miscellaneous

» Problem Fixes and Known Issues

» Problem Fixes
» Known Issues

» Setting the JAVA_FONTS Variable
» Font Problem
» Asian Characters Displayed as Empty Boxes in Swing
» running Java with setuid or setgid

Features

The SDK Developer's Release Version 1.3.0.02 for the Itanium Processor Family (IPF), Classic Edition provides the tools for developing and deploying Java applications on HP systems with HP-UX 11i Version 1.5 for the Itanium Processor Family (IPF). It runs in 32-bit mode on Itanium Processor Family systems. It does NOT support PA-RISC systems.

Contents of SDK Developer's Release 1.3.0.02 IPF

This SDK Developer's Release version 1.3.0.02 for the IPF family is a Developer's version, intended for developing platform independent client applications at the API level for the SDK 1.3. It will enable porting activities for native Java-based programs. We expect to release a higher performing VM about six to nine months after the Itanium Processor Family is released.

Features of SDK 1.3

The SDK Version 1.3 includes significant functionality enhancements over 1.2. The new features of the standard version 1.3 of the Java 2 platform and the tool support and tool enhancements are documented at http://java.sun.com/products/jdk/1.3/docs/relnotes/features.html. The complete list of features of the standard version 1.3 is documented at http://java.sun.com/reference/docs/index.html#guide.

The SDK Version 1.3 includes all of the standard Java 2 SDK tools. The tools include appletviewer, extcheck, jar, java, javac, javadoc, javah, javap, jdb and oldjdb, rmic, rmid, rmiregistry, serialver, keytool, jarsigner, policytool, native2ascii, tnameserv, and idlj. This release continues to support a 100% Java compatible environment.

FastSwing Feature

The 1.3 release also contains the FastSwing feature that is exclusive to HP-UX. This feature provides some performance improvement for Swing Applications on a Remote X-Server. Remote X-Servers include X-Terminals, PC-XServers like Exceed and Reflection X and remote unix workstations. This feature is documented in "Usage Documentation" below.

JPDA

JPDA is the debugging support architecture needed to build debugger applications for the Java 2 Platform. The JPDA includes the Java Debug Interface (JDI), the Java Debug Wire Protocol (JDWP), and the Java Virtual Machine Debug Interface (JVMDI). A sample debugger based on JPDA is provided in /opt/java1.3/bin/jdb. The original jdb product has been moved to /opt/java1.3/bin/oldjdb. Please note that the java source code for the sample debuggers is located in examples.jar in /opt/java1.3/demo/jpda and is unsupported.

Supported APIs

The HP-UX SDK for the Java 2 Platform, developer's release version 1.3 supports the APIs core to the Java 2 platform: Java Foundation Classes (JFC), Security, Java IDL, JDBC(tm), JavaBeans(tm), Remote Method Invocation (RMI), Java 2D, and the Collections Framework. HP also includes the implementation of a non-blocking I/O Poll API for Java in the com.hp.io package. com.hp.io.Poll supports a general mechanism for reporting I/O conditions associated with a set of FileDescriptors and for waiting until one or more conditions becomes true. Specified conditions include the ability to read or write data without blocking, and error conditions. Use of com.hp.io.Poll dramatically reduces the number of threads required to support large numbers of clients in large server-side Java applications.

The packages included in the APIs core to the Java 2 platform are described at: http://java.sun.com/products/jdk/1.3/docs/api

IDL Compiler

The JavaSoft idlj compiler is available in this release. This allows developers to define their application interfaces in a program neutral interface language. The idl interface files are compiled into Java files via this compiler. It also generates portable client stubs and server skeletons that work with any CORBA-compliant Object Request Broker. It produces CORBA 2.3 compliant code. Refer to http://java.sun.com/reference/docs/index.html for more information.

JNDI

The Java Naming and Directory Interface is available in this release. This makes it possible to have a federated naming service as part of your application. Currently LDAPv2, CosNaming, and RMI Registry Server Provider Interfaces are available on our JDK platform. Refer to http://java.sun.com/reference/docs/index.htmlfor more information.

ORB Support

The JavaSoft ORB has been updated to CORBA 2.3.2 compliancy. One of the new features specified in this update is "objects passed by value." Refer to the OMG documents at http://www.omg.org/ for more information on this CORBA version.

RMI

New RMI run-time classes are included in this release. They provide greater performance and functionality for RMI applications running over the JRMP protocol.

RMI/IIOP

New RMI run-time classes are included that allow RMI applications to run over the IIOP protocol.

Also, a new rmic compiler is provided that understands the "-iiop" option that produces stub and skeleton files that communicate via the IIOP protocol. This makes it possible for RMI clients and servers to communicate with their CORBA counterparts. Refer to http://java.sun.com/docs/index.html for more information.

HP's Product Versioning

HP's product versioning scheme is similar to the JavaSoft versioning scheme. An HP maintenance release, for example 1.2.2.00, would contain the JavaSoft 1.2.2 maintenance fixes and may include additional HP defect fixes. A subsequent HP minor maintenance release, for example 1.2.2.01 or 1.2.2.02, would contain all additional defect fixes for HP releases after 1.2.2.00. HP's minor maintenance releases are not directly comparable to JavaSoft patch releases such as 1.2.2.-001.

Installation

Patches

Operating system patches should be installed before you install the software. To determine which patches have been installed on your machine, login as root and check your machine with: /usr/sbin/swlist -l product

For ongoing updates of the list of required and recommended patches, and instructions on how to download them, go to the Patches page.

minimum system recommendation

You must run the SDK Developer's Release Version 1.3.0.02 for Itanium on Itanium Processor Family servers or workstations. These are currently: the hp rx4610 server or rx9610 server, and the hp i2000 workstation.

Installation Instructions

If you download the software from the website, you need approximately 100 MB of disk space on your system to install the software.

The HP-UX SDK for the Java™ 2 Platform installs under /opt/java1.3. As root user, use the SD-UX swinstall command to install the software:

/usr/sbin/swinstall

It will lead you through the installation. Change Source Depot Type to "Local Directory" and Source Depot Path to /tmp/<filename>. (If you used a directory other than /tmp in the previous step, replace /tmp with that directory name.) We recommend you select the "Reinstall filesets" and unselect the "Mount filesystems" option from the options menu in swinstall.

WARNING: Do not unarchive rt.jar, il8n.jar, jpda.jar, and tools.jar. These files are needed by the SDK tools and the runtime environment.

Add the directory /opt/java1.3/bin to your PATH.

For information on setting important system parameters required for correct execution of Java programs go to the Programmer's Guide for Java™ 2.

File Structure

The diagram below displays an abbreviated form of the file structure:

diagram displaying an abbreviated form of the file structure

The tools install under opt/java1.3/bin and the libraries install under opt/java1.3/lib. The tools.jar file contains the classes for supporting the tools and utilities. The file dt.jar contains the DesignTime archive of BeanInfo files.

The jre directory includes the runtime environment. The file rt.jar contains the runtime classes for the core API. The file il8n.jar contains the internationalization and localization classes and files. The security directory contains security management files. The IA64 directory contains the shared libraries used by the HP-UX platform.

The file src.jar contains an archive of source files for the core API for informational purposes. To view the files, enter the command: $ jar xvf src.jar.

The include directory contains the header files for supporting JNI and JVMDI.

Usage Documentation

The Java 2 Platform, Standard Edition, v 1.3 API Specification is provided at http://java.sun.com/j2se/1.3/docs/api/index.html. Note: Only the java.x packages are documented.

The Java Class Libraries: Second Edition, Volume 1 by Patrick Chan, Rosanna Lee, and Douglas Kramer provides additional detail and examples. For more information see http://java.sun.com/docs/books/chanlee/supplement.

The HP-UX Programmer's Guide for Java provides additional information.

Below are some additional documentation notes about tools, threads, JNI, CLASSPATH, migrating from Java 1.1 to Java 2, JAR files, support for locales, JPDA, and miscellaneous items.

Supported Tools and Options

To run a tool on HP-UX, either use the full path name or add the path to the startup file. For example, to use javac on the command line you would enter: /opt/java1.3/bin/javac yourfile.java. You could alternatively add /opt/java1.3/bin to your PATH statement and on the command line enter: javac yourfile.java

The Classic technology accepts all of the standard tools and options, and the documentation references are noted below:

The appletviewer tool is documented at http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/appletviewer.html

CLASSPATH is documented at http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/classpath.html

The jar tool is documented at http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/jar.html

The java tool is documented at http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/java.html

The javac tool is documented at http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/javac.html

The javadoc tool is documented at: http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/javadoc.html

The javah tool is documented at: http://www.java.sun.com/products/jdk/1.3/docs/tooldocs/solaris/javah.html

The javap tool is documented at: http://java.sun.com/reference/docs/index.html

The jdb tool is documented at: http://java.sun.com/docs/index.html

The old jdb tool is documented at: http://java.sun.com/docs/index.html

The extcheck tool is documented at: http://java.sun.com/reference/docs/index.html

The rmic tool is documented at: http://java.sun.com/reference/docs/index.html

The rmiregistry tool is documented at: http://java.sun.com/reference/docs/index.html

The rmid tool is documented at: http://java.sun.com/reference/docs/index.html

The serialver tool is documented at: http://java.sun.com/reference/docs/index.html

The native2ascii tool is documented at: http://java.sun.com/reference/docs/index.html

The keytool tool is documented at: http://java.sun.com/reference/docs/index.html

The jarsigner tool is documented at: http://java.sun.com/reference/docs/index.html

The policytool tool is documented at: http://java.sun.com/reference/docs/index.html

The tnameserv tool is documented at: http://java.sun.com/reference/docs/index.html

The idlj tool is documented at: http://java.sun.com/reference/docs/index.html

Non-Standard Options and HP Specifics

Additional HP specific documentation is provided in the Programmer's Guide for Java™ 2. Noteworthy HP specific options and features for Java 2 version 1.3 include -Xnocatch, and -verbosegc, which are described below.

-Xnocatch

The -Xnocatch option disables the Java "catch-all" signal handler. Use this option to generate clean stack traces from native code.

-verbosegc or -verbose:gc

Prints out the result of a garbage collection to the stdout stream. Prints out diagnostic messages during garbage collections. The diagnostics include the following:
  • Allocations statistics and allocation size histogram since the last garbage collection.
  • Number of successful allocations from Thread Local Cache.
  • Number of live objects.
  • Number of objects and number of bytes freed, and the time taken to perform the deallocation.

Threads

Green threads is not included in the HP-UX SDK, for the Java™ 2 Platform.

CLASSPATH

CLASSPATH will be automatically set during installation. If you get the error "Unable to initialize threads: cannot find class java1.3/lang/Thread", your CLASSPATH environment variable may be incorrect.

See also http://java.sun.com/reference/docs/index.html.

Compatibility between Release 1.3 and Previous Releases

Compatibility information is provided at: http://java.sun.com/j2se/1.3/compatibility.html.

Migrating from Java 1.1 to Java 2

Information to assist you in migrating from 1.1 to Java 2 is provided at http://java.sun.com/reference/docs/index.html.

The SDK 2 java launcher tool replaced the JDK 1.1 jre tool.

JAR Files

If you run an applet from a JAR file, the classes files should only be available in the JAR file, and the JAR file should not be in the class path.

Using Font Property Files

Java font property files map Java virtual (or "logical") fonts to platform-specific fonts. These font property files are in $JAVA_HOME/jre/lib and are platform-specific. As with any Java property file, font property files are sensitive to your locale setting. For information on adding Asian fonts, see other topics in these Release Notes. You will find good background information at the following web sites: http://java.sun.com/products/jdk/1.2/docs/guide/internat/fontprop.html http://java.sun.com/j2se/1.3/docs/guide/intl/addingfonts.html

Support for Locales

The HP-UX proprietary encodings used by the following HP-UX propietory locales are not recognized by the runtime environment.

ar_DZ.arabic8 fr_FR.roman8
ar_SA.arabic8 is_IS.roman8
da_DK.roman8 it_IT.roman8
de_DE.roman8 iw_IL.hebrew8
el_GR.greek8 ja_JP.kana8
en_GB.roman8 nl_NL.roman8
en_US.roman8 no_NO.roman8
es_ES.roman8 pt_PT.roman8
fi_FI.roman8 sv_SE.roman8
fr_CA.roman8 tr_TR.turkish8

The following locales are supported:

C.iso88591 hu_HU.iso88592
C.iso885915 is_IS.iso88591
bg_BG.iso88595 is_IS.iso885915@euro
cs_CZ.iso88592 it_IT.iso88591
da_DK.iso88591 it_IT.iso885915@euro
da_DK.iso885915@euro ja_JP.SJIS
de_DE.iso88591 ko_KR.eucKR
de_DE.iso885915@euro nl_NL.iso88591
el_GR.iso88597 nl_NL.iso885915@euro
en_GB.iso88591 no_NO.iso88591
en_GB.iso885915@euro no_NO.iso885915@euro
en_US.iso88591 pl_PL.iso88592
es_ES.iso88591 pt_PT.iso88591
es_ES.iso885915@euro pt_PT.iso885915@euro
fi_FI.iso88591 ro_RO.iso88592
fi_FI.iso885915@euro ru_RU.iso88595
fr_CA.iso88591 sk_SK.iso88592
fr_CA.iso885915 sl_SI.iso88592
fr_FR.iso88591 sv_SE.iso88591
fr_FR.iso885915@euro tr_TR.iso88599
hr_HR.iso88592 zh_CN.hp15CN
  zh_TW.big5
Japanese Localization

Use this procedure to display Japanese text.
  1. HP has tested font the typefaces from Ricoh called TrueTypeWorld ValueFont D2. Ricoh is a purchased product. For product information, go to http://www.ricoh.co.jp/swd/font/
    • Install the purchased Ricoh product using the procedure described in HP-UX manual "Japanese Environment User's Guide (part number: B3782-90873). See Chapter 4, Configuration of Japanese Fonts, Installation and Configuration for TrueType optional fonts.
    • Run /usr/sbin/ttinstall provided by the JSE on the WABUN/W31NT31 fonts. This will install the fonts to /usr/lib/X11/fonts/ttfjpn.st.
  2. Add the Ricoh installation location to the JAVA_FONTS variable. The default is: JAVA_FONTS=/usr/lib/X11/fonts/ttfjpn.st/typefaces
  3. Install the Ricoh font property file to $JAVA_HOME/jre/lib. (Beginning with SDK 1.3.1 and later, the Ricoh property file is shipped.) With proper (root) privileges, copy it to font.properties.ja as follows:

    su cd $JAVA_HOME/jre/lib/ cp font.properties.ja.Ricoh font.properties.ja
  4. Set LANG to the Japanese locale ja_JP.SJIS in your runtime environment, or simply use CDE locale login.

Date/Time Methods - New Defaults

In SDK 1.3.1, there has been a change in default date/time java methods.

There are three methods of retrieving date/time, as follows. Using these methods will improve performance.
  1. UseHighResolutionTimer & !UseGetTimeOfDay { default } will use the lw_get_thread_time.

  2. UseHighResolutionTimer & UseGetTimeOfDay { -XX:+UseGetTimeOfDay -XX:+UseHighResolutionTimer } will use gettimeofday.

  3. !UseHighResolutionTimer { -XX:-UseHighResolutionTimer } will use an internal buffer that is updated by the WatcherThread thread. This method is not quite as accurate, but since the WatcherThread thread checks every 100ms, it is close enough for most things.

Starting the X Font Server in X Windows Unix

In X Windows Unix environments, you can use X Font Server as an alternative to storing fonts in directories. For an X Server machine to access the X Font Server, the daemon xfs must be running and xfs must be added to the X fontpath via xset.

If you set RUN_X_FONT_SERVER in /etc/rc.config.d/xfs, xfs is started upon reboot and xfs is added to the font path.

Alternatively you can use these two commands: # add xfs to the font path

/usr/bin/X11/xfs -config /etc/X11/fs/config -port 7000 -daemon xset +fp tcp/localhost:7000

Using JPDA

The JPDA architecture and components are documented at http://java.sun.com/products/jpda/ and http://java.sun.com/reference/docs/index.html. The jdb for HP-UX is similar to the Solaris implementation. JPDA supports only the classic VM technology. For usage information, see "Sun VM Invocation Options" at http://java.sun.com/products/jpda/doc/conninv.html. The following information on "Manually Launching the Application VM" is excerpted from http://java.sun.com/products/jpda/readme.html:

Manually Launching the Application VM

If you are running the version of jdb provided in this release, the application VM is launched for you with the debugger back end loaded. However, in the following cases, you will be launching your own application VM, either by hand or in your implementation.
  1. Remote debugging with the -attach or -listen jdb option.
  2. You are implementing a debugger which uses the JDWP directly.
  3. You are implementing a debugger back end which uses JVMDI.

Currently, the first two cases require a command line like the following:

java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y -classpath class-path class-name

The -Xdebug option enables debugging. The -Xnoagent disables the default sun.tools.debug debug Agent. The -Djava.compiler=NONE disables the JIT compiler (if any).

For the third case, you must use the same command line options as described above, but you are free to use your own mechanism for loading the JVMDI client into the application VM. You do not need to use -Xrun.

The Connection and Invocation Details document at http://java.sun.com/products/jpda/doc/conninv.html contains more information on necessary VM invocation options and sub-options of -Xrunjdwp.

Closing a Socket When Accept or Read is Pending

If a thread is performing an accept or read on a socket, and you try to close the socket to clean up resources, the default behavior is for the close() to block until the accept or read call completes. If you wish to change this behavior, you should use the following Java command line option:

-XdoCloseWithReadPending

This option allows one thread to close a socket when there is an outstanding accept or read pending on the same socket from another thread. With the -XdoCloseWithReadPending option, the socket close() call closes the socket and, in the context of the thread with the pending read or accept, a SocketException with the message "Socket closed" is thrown.

Miscellaneous

For detailed information on Java 2 SDK features and tools, go to http://java.sun.com/reference/docs/index.html.

The Java 2 Platform API Specification is available at http://java.sun.com/j2se/1.3/docs/api/index.html .

Other documentation can be found at:
Java Foundation Classes: http://java.sun.com/products/jfc/docs.html
Java Security: http://java.sun.com/security/index.html
Java IDL: http://java.sun.com/reference/docs/index.html
JDBC: http://java.sun.com/products/jdbc/index.html
JavaBeans: http://java.sun.com/beans/docs/index.html
Java 2D: http://java.sun.com/products/java-media/2D/index.html
RMI: http://java.sun.com/products/jdk/rmi/index.html
RMI-IIOP: http://java.sun.com/docs/index.html
JVMPI: http://java.sun.com/docs/index.html
The Collections Framework: http://java.sun.com/reference/docs/index.html

Java Language Specification is provided at http://java.sun.com/docs/books/jls/html/index.html.

Standard code conventions are provided at http://java.sun.com/docs/codeconv/index.html.

Online training is provided at http://developer.java.sun.com/developer/onlineTraining.

Problem Fixes and Known Issues

Defects fixed in version 1.3.0.02 and known problems are described below.

Known JavaSoft bugs are documented in the Bug Database at http://developer.java.sun.com/. Information on JavaSoft 1.3 fixed bugs is available at http://java.sun.com/docs/index.html .

Problem Fixes

The 1.3.0.02 release includes a fix for the following defect:
  • HP SR 8606196409 JAGad65612 Java garbage collection bug causes sig 11, out of memory errors.

Known Issues

Below is some information on a few problem topics.

Setting the JAVA_FONTS Variable

The JAVA_FONTS variable is read by the Java runtime to find fonts installed to places other that $JAVA_HOME. For example, X Window fonts could be installed to /lib/X11/fonts.

The default value of JAVA_FONTS is /usr/lib/X11/fonts/ms.st/typefaces:/usr/lib/X11/fonts/type1.st/typefaces: \ /usr/lib/X11/fonts/ttf.st/typefaces

Typically you would augment this list, by adding your additional paths to the above path string. However, with JAGad64950, you will need to override it using a single element:

export JAVA_FONTS=/usr/lib/X11/fonts/jpnttf.st/typefaces

Font Problem

If you are experiencing a font problem, please set the JAVA_FONTS environment variable as follows:

export JAVA_FONTS=/usr/lib/X11/fonts/ms.st/typefaces

Asian Characters Displayed as Empty Boxes in Swing

If Asian (Chinese, Japanese and Korean) characters are displayed as empty boxes in Swing (and all light-weight components) the causes can be:
  1. The environment variable JAVA_FONTS is incorrectly set.
  2. The Asian TrueType fonts/typefaces have not been installed.
  3. The Java font property file for the Asian typefaces has not been installed. This file must correspond to your LANG setting and the typefaces.

Asian TrueType fonts are not yet available on the HP-UX platform. HP is working on providing those fonts in a future release. In the meantime, you need to obtain the Asian TrueType fonts from Ricoh or equivalent vendors.

The section on Japanese Localization in the Usage Documentaion section of these release notes has information on how to copy font.properties.ja.Ricoh to font.properties.ja.

running Java with setuid or setgid

Java requires dynamic loading (SHLIB_PATH, LD_LIBRARY_PATH) which are disabled in setuid or setgid executables. Therefore Java cannot run with setuid or setgid.

Legal Notices

Copyright © Hewlett-Packard Company 2003. All Rights Reserved. Reproduction, adaptation, or translation without prior written permission is prohibited, except as allowed under the copyright laws.

UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited.

WHILE THE INFORMATION IN THIS PUBLICATION IS BELIEVED TO BE ACCURATE, HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance or use of this material. Information in this publication is subject to change without notice.

Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.