The java command supports a wide range of options:
All options start with a single hyphen or minus-sign (-): the GNU/Linux convention of using -- for "long" options is not supported.
Options must appear before the <classname> or the -jar <jarfile> argument to be recognized. Any arguments after them will be treated as arguments to be passed to Java app that is being run.
Options that do not start with -X or -XX are standard options. You can rely on all Java implementations1 to support any standard option.
Options that start with -X are non-standard options, and may be withdrawn from one Java version to the next.
Options that start with -XX are advanced options, and may also be withdrawn.
-DThe -D<property>=<value> option is used to set a property in the system Properties object. This parameter can be repeated to set different properties.
The main options for controlling the heap and stack sizes are documented in Setting the Heap, PermGen and Stack sizes. (Editorial note: Garbage Collector options should be described in the same topic.)
The -ea and -da options respectively enable and disable Java assert checking:
-ea option enables checking of all assertions-ea:<packagename>... enables checking of assertions in a package and all subpackages.-ea:<classname>... enables checking of assertions in a class.-da option disables checking of all assertions-da:<packagename>... disables checking of assertions in a package and all subpackages.-da:<classname>... disables checking of assertions in a class.-esa option enables checking for all system classes.-dsa option disables checking for all system classes.The options can be combined. For example.
$ # Enable all assertion checking in non-system classes
$ java -ea -dsa MyApp
$ # Enable assertions for all classes in a package except for one.
$ java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyApp
Note that enabling to assertion checking is liable to alter the behavior of a Java programming.
assert statement could have unwanted side-effects.The -client and -server options allow you to select between two different forms of the HotSpot VM:
By default, the JVM will run in 64bit mode if possible, depending on the capabilities of the platform. The -d32 and -d64 options allow you to select the mode explicitly.
1 - Check the official manual for the java command. Sometimes a standard option is described as "subject to change".