." Copyright 2002-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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
."
.TH java 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)

.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 
.na
\f2Server\-Class Machine Detection\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html  
.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 
.na
\f2Server\-Class Machine Detection\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html  
.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 
.na
\f2JVMTI Agent Command Line Options\fP @
.fi
http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting.  
.TP 3
\-agentpath:pathname[=options] 
Load a native agent library by full pathname. For more information, see 
.na
\f2JVMTI Agent Command Line Options\fP @
.fi
http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting. 
.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 
.na
\f2Setting the Class Path\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath.  
.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(1) 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 
.na
\f2Java Archive (JAR) Files\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/jar/index.html.  
.TP 3
\-javaagent:jarpath[=options] 
Load a Java programming language agent, see 
.na
\f2java.lang.instrument\fP @
.fi
http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html. 
.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.6.0_13 1.6*&1.6.0_10+"
.fl
\fP
.fi
The meaning of the above is that the class or jar file requires either version 1.6.0_13, or a version with 1.6 as a version\-id prefix and that is not less than 1.6.0_10.. 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 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.6.0_10+"
.fl
\fP
.fi
.LP
Would utilize any version greater than 1.6.0_10. 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.6.0_10+&1.6*"
.fl
\fP
.fi
.TP 3
4.
"Or" expressions of items 2. or 3. above. For example: 
.nf
\f3
.fl
"1.6.0_10+&1.6* 1.7+"
.fl
\fP
.fi
Similar to item 2. this is useful when a change was introduced in a release (1.7) but also made available in updates to previous releases. 
.RE

.LP
.SH "SEE ALSO"
.LP

.LP
.RS 3
.TP 2
o
javac(1) 
.TP 2
o
jdb(1) 
.TP 2
o
javah(1) 
.TP 2
o
jar(1) 
.TP 2
o
.na
\f2The Java Extensions Framework\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html 
.TP 2
o
.na
\f2Security Features\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/security/index.html. 
.TP 2
o
.na
\f2HotSpot VM Specific Options\fP @
.fi
http://java.sun.com/docs/hotspot/VMOptions.html. 
.RE

.LP

.LP
 
