J2SE 5.0 より、起動するアプリケーションがサーバクラスマシン上で実行されているかどうかを起動ツールで検出できるようになりました。サーバクラスマシン上で実行されていれば、Java HotSpot Client Virtual Machine (クライアント VM) ではなく、Java HotSpot Server Virtual Machine (サーバ VM) が使用されます。これで、実行しているアプリケーションを反映するように VM が設定されていなくても、パフォーマンスを向上させられます。一般に、クライアント VM よりもサーバ VM の起動が低速ですが、徐々に速く動作するようになります。
注: J2SE 5.0 の場合、サーバクラスマシンとは、少なくとも 2つの CPU と、最少でも 2GB の物理メモリを備えているマシンを指します。
J2SE 5.0 では、Solaris または Linux を実行している i586 または Sparc 32 ビットマシン上でアプリケーションを起動するときに、-server と -client のどちらも指定されていない場合に、サーバクラス の検出が行われます。以下の表からも分かるように、i586 Microsoft Windows プラットフォームではデフォルトでクライアント VM を使用します。Sun がサポートしている残りのプラットフォームでは、サーバ VM だけを使用します。
| プラットフォーム | デフォルト VM | |||
| アーキテクチャ | OS | クライアント VM |   サーバクラスの場合はサーバ VM、 そうでない場合はクライアント VM | サーバ VM | 
| SPARC 32 ビット | Solaris |  | X |  | 
| i586 | Solaris |  | X |  | 
| Linux |  | X |  | |
| Microsoft Windows | X |  |  | |
| SPARC 64 ビット | Solaris |  |  | X | 
| AMD64 | Linux |  |  | X | 
| Microsoft Windows |  |  | X | |
コマンド行オプションを使用するアプリケーションの起動については、Solaris、Linux、または Microsoft Windows 用の java ツールのドキュメントを参照してください。