.'" t
." Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
." ` 
.TH java 1 "07 Aug 2006"
." Generated by html2man

.LP
.SH NAME
java \- the Java application launcher
.LP
.SH "SYNOPSIS"
.LP
.nf
\f3
.fl
    \fP\f3java\fP [ options ] class [ argument ... ]
.fl
    \f3java\fP [ options ] \f3\-jar\fP file.jar [ argument ... ]
.fl
.fi

.LP
.RS 3

.LP
.RS 3
.TP 3
options 
Command\-line options. 
.TP 3
class 
Name of the class to be invoked. 
.TP 3
file.jar 
Name of the jar file to be invoked. Used only with \f2\-jar\fP. 
.TP 3
argument 
Argument passed to the \f3main\fP function. 
.RE

.LP
.RE
.SH "DESCRIPTION"
.LP

.LP
.LP
The \f3java\fP tool launches a Java application. It does this by starting a Java runtime environment, loading a specified class, and invoking that class's \f3main\fP method.
.LP
.LP
The method must be declared public and static, it must not return any value, and it must accept a \f2String\fP array as a parameter. The method declaration must look like the following:
.LP
.nf
\f3
.fl
    public static void main(String args[])
.fl
\fP
.fi

.LP
.LP
By default, the first non\-option argument is the name of the class to be invoked. A fully\-qualified class name should be used. If the \f3\-jar\fP option is specified, the first non\-option argument is the name of a \f3JAR\fP archive containing class and resource files for the application, with the startup class indicated by the \f3Main\-Class\fP manifest header.
.LP
.LP
The Java runtime searches for the startup class, and other classes used, in three sets of locations: the bootstrap class path, the installed extensions, and the user class path.
.LP
.LP
Non\-option arguments after the class name or JAR file name are passed to the \f3main\fP function.
.LP
.SH "OPTIONS"
.LP

.LP
.LP
The launcher has a set of standard options that are supported on the current runtime environment and will be supported in future releases. In addition, the current implementations of the virtual machines support a set of non\-standard options that are subject to change in future releases.
.LP
.SH "Standard Options"
.LP

.LP
.RS 3
.TP 3
\-client 
.LP
Select the Java HotSpot Client VM. A 64\-bit capable jdk currently ignores this option and instead uses the Java Hotspot Server VM. 
.LP
For default VM selection, see Server\-Class Machine Detection  
.TP 3
\-server 
.LP
Select the Java HotSpot Server VM. On a 64\-bit capable jdk only the Java Hotspot Server VM is supported so the \-server option is implicit. 
.LP
For default VM selection, see Server\-Class Machine Detection  
.TP 3
\-agentlib:libname[=options] 
Load native agent library \f2libname\fP, e.g. 
.LP
\-agentlib:hprof 
.LP
\-agentlib:jdwp=help 
.LP
\-agentlib:hprof=help 
.LP
For more information, see JVMTI Agent Command Line Options.  
.TP 3
\-agentpath:pathname[=options] 
Load a native agent library by full pathname. For more information, see JVMTI Agent Command Line Options. 
.TP 3
\-classpath classpath 
.TP 3
\-cp classpath 
Specify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (\f3:\fP). Specifying \f3\-classpath\fP or \f3\-cp\fP overrides any setting of the \f3CLASSPATH\fP environment variable. 
.LP
If \f3\-classpath\fP and \f3\-cp\fP are not used and \f3CLASSPATH\fP is not set, the user class path consists of the current directory (\f4.\fP).  
.LP
As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations).
.br
.br
For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP.  
.LP
For more information on class paths, see Setting the Class Path.  
.TP 3
\-Dproperty=value 
Set a system property value. 
.TP 3
\-d32 
.TP 3
\-d64 
Request that the program to be run in a 32\-bit or 64\-bit environment, respectively. If the requested environment is not installed or is not supported, an error is reported. 
.LP
Currently only the Java HotSpot Server VM supports 64\-bit operation, and the "\-server" option is implicit with the use of \-d64. And the "\-client" option is ignored with the use of \-d64. This is subject to change in a future release. 
.LP
If neither \f3\-d32\fP nor \f3\-d64\fP is specified, the default is to run in a 32\-bit environment, except for 64\-bit only systems. This is subject to change in a future release.  
.TP 3
\-enableassertions[:<package name>"..." | :<class name> ] 
.TP 3
\-ea[:<package name>"..." | :<class name> ] 
Enable assertions. Assertions are disabled by default. 
.LP
With no arguments, \f3enableassertions\fP or \f3\-ea\fP enables assertions. With one argument ending in \f2"..."\fP, the switch enables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch enables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch enables assertions in the specified class. 
.LP
If a single command line contains multiple instances of these switches, they are processed in order before loading any classes. So, for example, to run a program with assertions enabled only in package \f2com.wombat.fruitbat\fP (and any subpackages), the following command could be used: 
.nf
\f3
.fl
java \-ea:com.wombat.fruitbat... <Main Class>
.fl
\fP
.fi
.LP
The \f3\-enableassertions\fP and \f3\-ea\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-enablesystemassertions\fP below.  
.TP 3
\-disableassertions[:<package name>"..." | :<class name> ] 
.TP 3
\-da[:<package name>"..." | :<class name> ] 
Disable assertions. This is the default. 
.LP
With no arguments, \f3disableassertions\fP or \f3\-da\fP disables assertions. With one argument ending in \f2"..."\fP, the switch disables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch disables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch disables assertions in the specified class. 
.LP
To run a program with assertions enabled in package \f2com.wombat.fruitbat\fP but disabled in class \f2com.wombat.fruitbat.Brickbat\fP, the following command could be used: 
.nf
\f3
.fl
java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat <Main Class>
.fl
\fP
.fi
.LP
The \f3\-disableassertions\fP and \f3\-da\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-disablesystemassertions\fP below.  
.TP 3
\-enablesystemassertions 
.TP 3
\-esa 
Enable asserts in all system classes (sets the \f2default assertion status\fP for system classes to \f2true\fP). 
.TP 3
\-disablesystemassertions 
.TP 3
\-dsa 
Disables asserts in all system classes. 
.LP
.TP 3
\-jar 
Execute a program encapsulated in a JAR file. The first argument is the name of a JAR file instead of a startup class name. In order for this option to work, the manifest of the JAR file must contain a line of the form \f3Main\-Class: \fP\f4classname\fP. Here, \f2classname\fP identifies the class having the \f2public\ static\ void\ main(String[]\ args)\fP method that serves as your application's starting point. See the Jar tool reference page and the Jar trail of the 
.na
\f2Java Tutorial\fP @
.fi
http://java.sun.com/docs/books/tutorial/jar for information about working with Jar files and Jar\-file manifests. 
.LP
When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored. 
.LP
Note that JAR files that can be run with the "java \-jar" option can have their execute permissions set so they can be run without using "java \-jar". Refer to Java Archive (JAR) Files.  
.TP 3
\-javaagent:jarpath[=options] 
Load a Java programming language agent, see java.lang.instrument. 
.TP 3
\-verbose 
.TP 3
\-verbose:class 
Display information about each class loaded. 
.TP 3
\-verbose:gc 
Report on each garbage collection event. 
.TP 3
\-verbose:jni 
Report information about use of native methods and other Java Native Interface activity. 
.TP 3
\-version 
Display version information and exit. 
.TP 3
\-version:release 
Specifies that the version specified by \f2release\fP is required by the class or jar file specified on the command line. If the version of the java command invoked does not meet this specification and an appropriate implementation is found on the system, the appropriate implementation will be used. 
.LP
\f2release\fP not only can specify an exact version, but can also specify a list of versions called a version string. A version string is an ordered list of version ranges separated by spaces. A version range is either a version\-id, a version\-id followed by a star (*), a version\-id followed by a plus sign (+) , or two version\-ranges combined using an ampersand (&). The star means prefix match, the plus sign means this version or greater, and the ampersand means the logical anding of the two version\-ranges. For example: 
.nf
\f3
.fl
\-version:"1.5.0_04 1.5*&1.5.1_02+"
.fl
\fP
.fi
The meaning of the above is that the class or jar file requires either version 1.5.0_02, or a version with 1.5 as a version\-id prefix and that is not less than 1.5.1_02. The exact syntax and definition of version strings may be found in Appendix A of the Java Network Launching Protocol & API Specification (JSR\-56). 
.LP
For jar files, the usual preference is to specify version requirements in the jar file manifest rather than on the command line. 
.LP
See the following NOTES section for important policy information on the use of this option.  
.TP 3
\-showversion 
Display version information and continue. 
.TP 3
\-? 
.TP 3
\-help 
Display usage information and exit. 
.TP 3
\-X 
Display information about non\-standard options and exit. 
.RE

.LP
.SS 
Non\-Standard Options
.LP
.RS 3

.LP
.RS 3
.TP 3
\-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. 
.TP 3
\-Xbatch 
Disable background compilation. Normally the VM will compile the method as a background task, running the method in interpreter mode until the background compilation is finished. The \f2\-Xbatch\fP flag disables background compilation so that compilation of all methods proceeds as a foreground task until completed. 
.TP 3
\-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. \f2Note: 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.\fP 
.TP 3
\-Xbootclasspath/a:path 
Specify a colon\-separated path of directires, JAR archives, and ZIP archives to append to the default bootstrap class path. 
.TP 3
\-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. \f2Note: 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.\fP 
.TP 3
\-Xcheck:jni 
Perform additional checks for Java Native Interface (JNI) functions. Specifically, the Java Virtual Machine validates the parameters passed to the JNI function as well as the runtime environment data before processing the JNI request. Any invalid data encountered indicates a problem in the native code, and the Java Virtual Machine will terminate with a fatal error in such cases. Expect a performance degradation when this option is used. 
.TP 3
\-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 \f3\-Xfuture\fP 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. 
.TP 3
\-Xnoclassgc 
Disable class garbage collection. Use of this option will prevent memory recovery from loaded classes thus increasing overall memory usage. This could cause OutOfMemoryError to be thrown in some applications. 
.TP 3
\-Xincgc 
Enable the incremental garbage collector. The incremental garbage collector, which is off by default, will reduce the occasional long garbage\-collection pauses during program execution. The incremental garbage collector will at times execute concurrently with the program and during such times will reduce the processor capacity available to the program. 
.TP 3
\-Xloggc:file 
Report on each garbage collection event, as with \-verbose:gc, but log this data to \f2file\fP. In addition to the information \f2\-verbose:gc\fP gives, each reported event will be preceeded by the time (in seconds) since the first garbage\-collection event. 
.LP
Always use a local file system for storage of this file to avoid stalling the JVM due to network latency. The file may be truncated in the case of a full file system and logging will continue on the truncated file. This option overrides \f2\-verbose:gc\fP if both are given on the command line.  
.LP
.TP 3
\-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 \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics
.br
Examples: 
.RS 3

.LP
.nf
\f3
.fl
       \-Xms6291456
.fl
       \-Xms6144k
.fl
       \-Xms6m
.fl
       
.fl
\fP
.fi
.RE
.TP 3
\-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 \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics
.br
Examples: 
.RS 3

.LP
.nf
\f3
.fl
       \-Xmx83886080
.fl
       \-Xmx81920k
.fl
       \-Xmx80m
.fl
       
.fl
\fP
.fi
.RE
On Solaris 7 and Solaris 8 SPARC platforms, the upper limit for this value is approximately 4000m minus overhead amounts. On Solaris 2.6 and x86 platforms, the upper limit is approximately 2000m minus overhead amounts. On Linux platforms, the upper limit is approximately 2000m minus overhead amounts. 
.TP 3
\-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 be used in production systems.  
.LP
.TP 3
\-Xrs 
Reduces use of operating\-system signals by the Java virtual machine (JVM). 
.LP
In a previous release, 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. 
.LP
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. 
.LP
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. 
.LP
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. The \f3\-Xrs\fP command\-line option is available to address this issue. When \f3\-Xrs\fP 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. 
.LP
There are two consequences of specifying \f3\-Xrs\fP: 
.RS 3
.TP 2
o
SIGQUIT thread dumps are not available. 
.TP 2
o
User code is responsible for causing shutdown hooks to run, for example by calling System.exit() when the JVM is to be terminated. 
.RE
.TP 3
\-Xssn 
Set thread stack size. 
.TP 3
\-XX:+UseAltSigs 
The VM uses \f2SIGUSR1\fP and \f2SIGUSR2\fP by default, which can sometimes conflict with applications that signal\-chain \f2SIGUSR1\fP and \f2SIGUSR2\fP. The \f2\-XX:+UseAltSigs\fP option will cause the VM to use signals other than \f2SIGUSR1\fP and \f2SIGUSR2\fP as the default. 
.RE

.LP
.RE
.SH "NOTES"
.LP

.LP
The \f3\-version:\fP\f2release\fP command line option places no restrictions on the complexity of the release specification. However, only a restricted subset of the possible release specifications represent sound policy and only these are fully supported. These policies are: 
.RS 3
.TP 3
1.
Any version, represented by not using this option. 
.TP 3
2.
Any version greater than an arbitrarily precise version\-id. For example: 
.nf
\f3
.fl
"1.5.0_03+"
.fl
\fP
.fi
.LP
Would utilize any version greater than 1.5.0_03. This is useful for a case where an interface was introduced (or a bug fixed) in the release specified.  
.TP 3
3.
A version greater than an arbitrarily precise version\-id, bounded by the upper bound of that release family. For example: 
.nf
\f3
.fl
"1.5.0_03+&1.5*"
.fl
\fP
.fi
.TP 3
4.
"Or" expressions of items 2. or 3. above. For example: 
.nf
\f3
.fl
"1.4.2_05+&1.4* 1.5+"
.fl
\fP
.fi
Similar to item 2. this is useful when a change was introduced in a release (1.5) but also made available in updates to previous releases. 
.RE

.LP
.SH "SEE ALSO"
.LP

.LP
.RS 3
.TP 2
o
javac \- the Java programming language compiler 
.TP 2
o
jdb \- Java Application Debugger 
.TP 2
o
javah \- C Header and Stub File Generator 
.TP 2
o
jar \- JAR Archive Tool 
.TP 2
o
The Java Extensions Framework 
.TP 2
o
Security Features. 
.TP 2
o
.na
\f2HotSpot VM Specific Options\fP @
.fi
http://java.sun.com/docs/hotspot/VMOptions.html. 
.RE

.LP

.LP
 
