Starting with J2SE 5.0, when an application starts up, the launcher can attempt to detect whether the application is running on a "server-class" machine and, if so, use the Java HotSpot Server Virtual Machine (server VM) instead of the Java HotSpot Client Virtual Machine (client VM). The aim is to improve performance even if no one configures the VM to reflect the application it's running. In general, the server VM starts up more slowly than the client VM, but over time runs more quickly.
In Java SE 6, server-class detection occurs if neither
-server
nor -client
is specified when
launching the application on an i586 or Sparc 32-bit machine
running Solaris or Linux. As the following table shows, the i586
Microsoft Windows platform uses the client VM by default. The
remaining Sun-supported platforms use only the server VM.
Architecture | OS | Default client VM | if server-class, server VM; otherwise, client VM |
Default server VM |
---|---|---|---|---|
SPARC 32-bit | Solaris |
|
X
|
|
i586 | Solaris |
|
X
|
|
i586 | Linux |
|
X
|
|
i586 | Microsoft Windows |
X
|
|
|
SPARC 64-bit | Solaris |
—
|
|
X
|
AMD64 | Solaris |
—
|
|
X
|
AMD64 | Linux |
—
|
|
X
|
AMD64 | Microsoft Windows |
—
|
|
X
|
For details of using command-line options for launching
applications, see the java
tool documentation for
Solaris and Linux, or
Microsoft Windows.