web-dev-qa-db-ja.com

読み取りJava JVM起動パラメーター(例-Xmx)

実行中のJavaプロセス内からJVM起動プロパティを特定する方法があるかどうかを確認しようとしています。具体的には、-Xmx(max heap size)と-XX:MaxPermSizeが格納されています。Sunの1.6 jvmを実行しています。

なぜ私がこれを実行したいのか疑問に思っている場合は、正しく構成されている場合とされていない場合があるJVM Webサーバーがいくつかあり、これを起動コードチェックに追加します。すべてのjvm起動ファイルを手動で見つけてチェックするよりも、どこにでも配置されているJavaコードの一部をチェックインする方がはるかに簡単です。ビルドプロセスの一部ではなく、ソース管理にチェックインされていません。

46
Bob Albright

試してください:

_import Java.lang.management.ManagementFactory;
import Java.lang.management.RuntimeMXBean;

import Java.util.List;

public void runtimeParameters() {
  RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
  List<String> aList = bean.getInputArguments();

  for (int i = 0; i < aList.size(); i++) {
    System.out.println( aList.get( i ) );
  }
}
_

すべてのJVMパラメータが表示されます。

注:VCSにもJVMパラメータはありませんが、データベースにはあります。本番環境で独自のランチャーによって読み取られます。これにより、JVMパラメータファイルの設定を再デプロイすることなく、これらの値をリモートで変更できます。


さまざまな この記事で使用するJVMツール"Dustin's Software Development Cogitations and Speculations" から) Java Application Launcherを含む)の良い要約が見つかります。 へのリンク:

この手法は、 J2SE 5 以降に利用可能なプラットフォームMXBeanを利用します(カスタムMXBeanサポートは Java SE 6 に追加されました)。

SunのJVMを使用するときに使用できるJVMパラメータに関する2つの有用な情報源は次のとおりです。

これらのリソースはどちらも、利用可能な推奨されていないdouble- X引数(_-XX_)の一部/すべてをリストして説明しています。

53
VonC

Java 7以降では、

Java -XshowSettings:all

10
Mike Duigou