6

JVM インスタンスで JVM (jdk 1.7u3 を使用) -server オプションがデフォルトで有効になっているかどうかを確認しようとしています。私の環境 (Windows 2008 Server R2) とServer-Class Machine 検出情報に基づいて、明示的に知りたいのですが、設定されると予想していました。もちろん、このオプションを使用して明示的に JVM を起動することもできます。

私はすでに次のアプローチを試しましたが、どちらも私が探しているものを明示的に述べているようには見えません. おそらく、他の詳細にエンコードされています。

  1. jVisualVM を介して JVM を表示し、明示的にリストされていない JVM 引数を確認します
  2. プログラムで JVM 引数を表示しようとしましたが、jVisualVM を介して観察されたものと一致します

    RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean();
    List<String> arguments = RuntimemxBean.getInputArguments();     
    
  3. JVM オプション -XX:+PrintCommandLineFlags を使用します。これにより、詳細な詳細が提供されましたが、-server オプションが設定されたという証拠はまだありません。

4

3 に答える 3

4

java -version コマンドを実行すると、それを確認できます。

以下は、-server フラグを指定して実行する JVM の例です。

Java バージョン "1.7.0_17"
Java(TM) SE ランタイム環境 (ビルド 1.7.0_17-b02)
Java HotSpot(TM) 64 ビット サーバー VM (ビルド 23.7-b01、混合モード)

-client の場合、64 ビットのクライアント VM が表示されます。

ほとんどの場合、CPU の数と物理メモリに依存します。もっと @ http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html

于 2013-04-17T22:29:09.443 に答える
3

文字列を使用System.getProperty("java.vm.name")して解析できます。

例:

public class Test {
  public static void main(String{[] args) {
    System.out.println(System.getProperty("java.vm.name"));
  }
}

この例では、次のようになります。

OpenJDK Client VM

または -server を使用している場合:

OpenJDK Server VM
于 2012-07-17T12:02:18.050 に答える
2

JConsoleを開きます->java.lang.Runtime->VmName属性を確認します。Java HotSpot(TM)クライアントVMが表示されます。サーバーモードを実行している場合は、表示される値を確認してください。

プログラムを使用してこれを確認する必要がある場合は、管理ファクトリに上記の属性を問い合わせる必要があります。

于 2012-07-17T11:59:51.873 に答える