You can use the following command to list them all.
java -X -help
On Java 8 SR 8 this gave me
The following options are non-standard and subject to change without notice.
-Xbootclasspath:<path> set bootstrap classpath to <path>
-Xbootclasspath/p:<path> prepend <path> to bootstrap classpath
-Xbootclasspath/a:<path> append <path> to bootstrap classpath
-Xrun<library>[:options] load native agent library
(deprecated in favor of -agentlib)
-Xshareclasses[:options] Enable class data sharing (use help for details)
-Xint run interpreted only (equivalent to -Xnojit -Xnoaot)
-Xnojit disable the JIT
-Xnoaot do not run precompiled code
-Xquickstart improve startup time by delaying optimizations
-Xfuture enable strictest checks, anticipating future default
-verbose[:(class|gcterse|gc|dynload|sizes|stack|debug)]
-Xtrace[:option,...] control tracing use -Xtrace:help for more details
-Xcheck[:option[:...]] control checking use -Xcheck:help for more details
-Xhealthcenter enable the Health Center agent
-Xdiagnosticscollector enable the Diagnotics Collector
-XshowSettings show all settings and continue
-XshowSettings:system
(Linux Only) show host system or container
configuration and continue
-XshowSettings:all show all settings and continue
-XshowSettings:vm show all vm related settings and continue
-XshowSettings:properties show all property settings and continue
-XshowSettings:locale show all locale related settings and continue
Arguments to the following options are expressed in bytes.
Values suffixed with "k" (kilo) or "m" (mega) will be factored accordingly.
-Xmca<x> set RAM class segment increment to <x>
-Xmco<x> set ROM class segment increment to <x>
-Xmn<x> set initial/maximum new space size to <x>
-Xmns<x> set initial new space size to <x>
-Xmnx<x> set maximum new space size to <x>
-Xmo<x> set initial/maximum old space size to <x>
-Xmos<x> set initial old space size to <x>
-Xmox<x> set maximum old space size to <x>
-Xmoi<x> set old space increment to <x>
-Xms<x> set initial memory size to <x>
-Xmx<x> set memory maximum to <x>
-Xmr<x> set remembered set size to <x>
-Xmrx<x> set maximum size of remembered set to <x>
-Xmso<x> set OS thread stack size to <x>
-Xiss<x> set initial java thread stack size to <x>
-Xssi<x> set java thread stack increment to <x>
-Xss<x> set maximum java thread stack size to <x>
-Xscmx<x> set size (or soft max size if option -XX:SharedCacheHardLimit= is
present) of new shared class cache to <x>
-Xscminaot<x> set minimum shared classes cache space reserved for AOT data to <x>
-Xscmaxaot<x> set maximum shared classes cache space allowed for AOT data to <x>
-Xmine<x> set minimum size for heap expansion to <x>
-Xmaxe<x> set maximum size for heap expansion to <x>
Arguments to the following options are expressed as a decimal from 0 to 1.
A value of 0.3 represents a request of 30%
-Xminf<x> minimum percentage of heap free after GC
-Xmaxf<x> maximum percentage of heap free after GC
Arguments to the following options are expressed a decimal numbers.
-Xgcthreads<x> set number of GC threads
-Xnoclassgc disable dynamic class unloading
-Xclassgc enable dynamic class unloading
-Xalwaysclassgc enable dynamic class unloading on every GC
-Xnocompactexplicitgc disable compaction on a system GC
-Xcompactexplicitgc enable compaction on every system GC
-Xcompactgc enable compaction
-Xnocompactgc disable compaction
-Xlp enable large page support
-Xrunjdwp:<options> enable debug, JDWP standard options
-Xjni:<options> set JNI options
I noticed that some products using Java have the nice option
-Xoptionsfile=/var/xxxf/configuration/colin_override.cfg
Where the file has a list of JVM options one on each line.
This option is not generally available.