Java Tool Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 5.00

'java' - Java Launching Command and Options

This section describes the Java launching tool 'java' and its commonly used command options.

"java": A command line tool that launches Java applications. It starts a Java virtual machine, loads the specified class, and invokes that class's main method. "java" has the following syntax:

java [options] class [arguments]

where "options" is a list of options; "class" is the full name of a Java class to be launched; "arguments" is a list of arguments to be passed to the main method of the class to be launched.

Another way of launching a Java class is to use the "-jar" option:

java [options] -jar file [arguments]

where "file" is a JAR file, which should contain a "Main-Class" attribute in the manifest file. The "Main-Class" attibute defines the Java class to be launched.

Commonly used options are:

  • "-help" - Displays a short help text.
  • "-verbose" - Generates verbose output to standard output.
  • "-version" - Prints the version information of the launcher.
  • "-classpath classpath" - Specifies a list of path names where the launcher will search for compiled type definitions. If "-classpath" is not specified, the current directory will be used as the class path.
  • "-Dproperty=value" - Defines a new system property, which can be accessed by the application.

If you run the "java" command without any options, you will get the quick usage information as shown below:

C:\>\j2sdk1.5.0\bin\java

Usage: java [-options] class [args...]
         (to execute a class)
   or  java [-options] -jar jarfile [args...]
         (to execute a jar file)

where options include:
  -client       to select the "client" VM
  -server       to select the "server" VM
  -hotspot      is a synonym for the "client" VM  [deprecated]
                The default VM is client.

  -cp <class search path of directories and zip/jar files>
  -classpath <class search path of directories and zip/jar files>
                A ; separated list of directories, JAR archives,
                and ZIP archives to search for class files.
  -D<name>=<value>
                set a system property
  -verbose[:class|gc|jni]
                enable verbose output
  -version      print product version and exit
  -version:<value>
                require the specified version to run
  -showversion  print product version and continue
  -jre-restrict-search | -jre-no-restrict-search include/exclude
                user private JREs in the version search
  -? -help      print this help message
  -X            print help on non-standard options
  -ea[:<packagename>...|:<classname>]
  -enableassertions[:<packagename>...|:<classname>]
                enable assertions
  -da[:<packagename>...|:<classname>]
  -disableassertions[:<packagename>...|:<classname>]
                disable assertions
  -esa | -enablesystemassertions
                enable system assertions
  -dsa | -disablesystemassertions
                disable system assertions
  -agentlib:<libname>[=<options>]
                load native agent library <libname>, 
                e.g. -agentlib:hprof see also, 
                -agentlib:jdwp=help and -agentlib:hprof=help
  -agentpath:<pathname>[=<options>]
                load native agent library by full pathname
  -javaagent:<jarpath>[=<options>]
                load Java programming language agent, 
                see java.lang.instrument

Sections in This Chapter

'java' - Java Launching Command and Options

Launching Hello.java - My First Java Program

Option "-classpath" - Specifying Class Path

Option '-jar' - Specifying Executable JAR Files

Option '-X' - Specifying Non-Standard Options

'javaw' - Launching Java Programs without Console

Dr. Herong Yang, updated in 2008
'java' - Java Launching Command and Options