HP-UX Programmer's Guide for Java 2
Table Of Contents
- Table of Contents
- 1 Introduction
- 2 HotSpot Technology Tools and Commands
- 3 Configuration for Java™ Support
- 4 Performance and Tuning
- 5 Measuring System Performance
- 6 Using Threads
- 7 Using Signals
- 8 Using Java™ 2 JNI on HP-UX
- 9 Expanding Memory
- Determine your requirements
- Memory layout under HP-UX 11.0 (PA-RISC only)
- Additional memory available under HP-UX 11i (PA-RISC only)
- Allocating physical memory and swap in the Java™ heap
- Useful key command-line options for allocating memory
- Application-dependent considerations using large heap size HP-UX 11i PA-RISC
- Expanding heap size in native applications on PA-RISC HP-UX 11.11 and later releases
- Expanding heap size in native applications on Integrity HP-UX 11.23 and later releases
- Expanding heap size in HP-UX PA-RISC
- Expanding heap size in HP-UX Integrity
- 10 Diagnosing Memory Leaks
- A JDK/JRE 6.0.n and 7.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collection
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- Upgrading from a previous Java Web Start version
- IPv6 support
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- JDK 6.0.04 flags
- GC log-rotation support
- NUMA collector enhancements
- ThreadDumpPath support
- Garbage-First garbage collector (-XX:+UseG1GC)
- jmap, jinfo, and jstack tools included in JDK 6.0.03
- Additional Java Web Start documentation
- B JDK/JRE 5.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collectors: Parallel and Concurrent Mark Sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket (PA-RISC only)
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- IPv6 support on Java 5.0
- GC log-rotation support in 5.0
- ThreadDumpPath support in 5.0
- Dynamically loaded libraries in 5.0
- Performance improvement for String.intern()
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- C SDK/RTE 1.4.2.n Usage Notes
- Removing support for unwanted architectures in the JRE
- Support for dynamic thread local storage (TLS)
- Signal Chaining functionality
- Using Java 2 JNI on HP-UX
- HotSpot JVM options
- Garbage collectors: Parallel and Concurrent mark sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket when accept or read is pending (PA-RISC) - new patch information!
- Compatibility with previous releases
- Runtime Plug-In usage and configuration
- GC log-rotation support
- ThreadDumpPath support
- D Additional Resources
- Index
HP aC++ Libraries with Other Languages, refer to the appropriate section within the
Programmers's Guide.
All HP aC++ programs require libCsup.sl (libCsup.so on Integrity). The other
two libraries are required by a subset of C++ programs. In this example, we could omit
libstd.sl on PA since we are not using the Standard Template Library functionality.
However it is usually best to link your native method shared library against all three
of these libraries.
On Integrity, create the shared library using:
$ aCC -b -o libaCCImpl.so aCCImpl.o \
-lstd_v2 -lCsup -lunwind -lm
On Integrity, the -AA lib -lstd_v2 is necessary, otherwise, running the program
will result in UnsatisfiedLinkErrors.
Linking a shared library against these other shared libraries will cause the linker to
record the fact that whenever libaCCImpl.sl (or libaCCImpl.so) is loaded into
memory the dependent libraries libCsup.sl, libstream.sl and libstd.sl,
(libCsup.so, libstream.so and libstd.so on Integrity) also must be loaded.
This is necessary since libCsup.sl (or libCsup.so) contains all the necessary
runtime support routines required by every C++ method.
To execute the Java™ program, you must set the SHLIB_PATH environment variable
to contain the location of the directory that includes libaCCImpl.sl (libaCCImpl.so
on Integrity). SHLIB_PATH is the HP-UX name for LD_LIBRARY_PATH and can contain
a list of directories each separated by colons. SHLIB_PATH should only be used for
PA-RISC 32 applications. Otherwise, LD_LIBRARY_PATH should be used.
$ export SHLIB_PATH=.:$SHLIB_PATH$ <java_dir>/java
TestJava2CallingNative aCCImpl
Library aCCImpl successfully loaded
initialize C++ runtime
Calling sayHelloWorld
ANSI C++ says HelloWorld via iostreams
All done
Native (non-Java) calling Java™ methods
JNI also allows non-Java™ programs to make calls into Java™ byte code. This capability
is provided via the C and C++ header file jni.h. Using this capability C and C++
programs can make calls into Java™.
In Java™ 2, the Java™ Virtual Machine (JVM) is shipped as a shared library. To utilize
the JVM in a native application you must link the application against libjvm.sl
(libjvm.so on Integrity). The JNI supports an Invocation API that allows you to
create and initialize a new JVM. Using this newly created JVM you can invoke various
Java™ methods, create new Java™ objects or access Java™ objects created by the JVM.
52 Using Java™ 2 JNI on HP-UX