|
Problem(Abstract) |
Categories of Java HotSpot VM Options |
|
|
|
Resolving the
problem |
Standard Options
-client
Select the Java HotSpot Client VM.
-server
Select the Java HotSpot Server VM. This is the default for WebSphere.
How to switch between client and server mode in WebSphere.
Select Application server, click JVM Settings tab, In the System
Properties click Add tab,
for server mode,
Name : HotSpotOption
value : server
for client mode,
Name : HotSpotOption
value : client
-classpath classpath
or
-cp classpath
Specify a list of directories, JAR archives, and ZIP archives to search
for class files. Class path entries are separated by colons (:).
Specifying -classpath or -cp overrides any setting of the CLASSPATH
environment variable.
If -classpath and -cp are not used and CLASSPATH is not set, the user
class path consists of the current directory (.).
-Dproperty=value
Set a system property value.
-verbose
Details about the loading of class files, and the location from which
they are loaded are written to stdout.
-verbose:class
Display information about each class loaded.
-verbose:gc
Report on each garbage collection event.
-verbose:jni
Report information about use of native methods and other Java Native
Interface activity.
-version
Display version information and exit.
-showversion
Display version information and continue.
-?
or
-help
Display usage information and exit.
-X
Display information about non-standard options and exit.
Non-Standard Options
-Xint
Operate in interpreted-only mode. Compilation to native code is disabled,
and all bytecodes are executed by the interpreter. The performance
benefits offered by the Java HotSpot VMs' adaptive compiler will not be
present in this mode.
-Xdebug
Start with the debugger enabled.(To use this option make sure you have
debug version of JDK)
-Xbootclasspath:bootclasspath
Specify a colon-separated list of directories, JAR archives, and ZIP
archives to search for boot class files. These are used in place of the
boot class files included in the Java 2 SDK. Note: Applications that use
this option for the purpose of overriding a class in rt.jar should not be
deployed as doing so would contravene the Java 2 Runtime Environment
binary code license.
-Xbootclasspath/a:path
Specify a colon-separated path of directires, JAR archives, and ZIP
archives to append to the default bootstrap class path.
-Xbootclasspath/p:path
Specify a colon-separated path of directires, JAR archives, and ZIP
archives to prepend in front of the default bootstrap class path. Note:
Applications that use this option for the purpose of overriding a class in
rt.jar should not be deployed as doing so would contravene the Java 2
Runtime Environment binary code license.
-Xfuture
Perform strict class-file format checks. For purposes of backwards
compatibility, the default format checks performed by the Java 2 SDK's
virtual machine are no stricter than the checks performed by 1.1.x
versions of the JDK software.
The -Xfuture flag turns on stricter class-file format checks that enforce
closer conformance to the class-file format specification. Developers are
encouraged to use this flag when developing new code because the stricter
checks will become the default in future releases of the Java application
launcher.
-Xnoclassgc
Disable class garbage collection.
-Xincgc
Enable the incremental garbage collector. The incremental garbage
collector, which is off by default, will eliminate occasional
garbage-collection pauses during program execution. However, it can lead
to a roughly 10% decrease in overall GC performance.
-Xmsn
Specify the initial size, in bytes, of the memory allocation pool. This
value must be a multiple of 1024 greater than 1MB. Append the letter k or
K to indicate kilobytes, or m or M to indicate megabytes. The default
value is 2MB.
For example:
-Xms6291456
-Xms6144k
-Xms6m
-Xmxn
Specify the maximum size, in bytes, of the memory allocation pool. This
value must a multiple of 1024 greater than 2MB. Append the letter k or K
to indicate kilobytes, or m or M to indicate megabytes. The default value
is 64MB. The upper limit for this value will be approximately 4000m on
Solaris 7 and Solaris 8 SPARC platforms and 2000m on Solaris 2.6 and x86
platforms, minus overhead amounts.
For example:
-Xmx83886080
-Xmx81920k
-Xmx80m
-Xssn
Set thread stack size. Each Java thread has two stacks: one for Java code
and one for C code. This option sets the maximum stack size that can be
used by C code in a thread to n. Every thread that is spawned during the
execution of the program passed to java has n as its C stack size. The
default units for n are bytes and n must be > 1000 bytes. To modify the
meaning of n, append either the letter k for kilobytes or the letter m for
megabytes. The default stack size is 512 kilobytes (i.e., -Xss512k).
-Xprof
Profiles the running program, and sends profiling data to standard
output. This option is provided as a utility that is useful in program
development and is not intended to be used in production systems.
-Xrunhprof[:help][:<suboption>=<value>,...]
Enables cpu, heap, or monitor profiling. This option is typically
followed by a list of comma-separated "<suboption>=<value>"
pairs. Run the command java -Xrunhprof:help to obtain a list of suboptions
and their default values.
-Xrs
Reduces use of operating-system signals by the Java virtual machine
(JVM). This option is available beginning with J2SE 1.3.1.
In J2SE 1.3.0, the Shutdown Hooks facility was added to allow orderly
shutdown of a Java application. The intent was to allow user cleanup code
(such as closing database connections) to run at shutdown, even if the JVM
terminates abruptly.
Sun's JVM catches signals to implement shutdown hooks for abnormal JVM
termination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the
running of shutdown hooks.
The JVM uses a similar mechanism to implement the pre-1.2 feature of
dumping thread stacks for debugging purposes. Sun's JVM uses SIGQUIT to
perform thread dumps.
Applications embedding the JVM frequently need to trap signals like
SIGINT or SIGTERM, which can lead to interference with the JVM's own
signal handlers. To address this issue, the -Xrs command-line option has
been added beginning in J2SE 1.3.1. When -Xrs is used on Sun's JVM, the
signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changed by
the JVM, and signal handlers for these signals are not installed.
There are two consequences of specifying -Xrs:
- SIGQUIT thread dumps are not available.
- User code is responsible for causing shutdown hooks to run
For example by calling System.exit() when the JVM is to be terminated.
WARNING: Flags -Xdebug and -Xint are mutually exclusive.
No more than one of those options should be used on a java command
line |
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|