4

重複の可能性:
Java JVM 起動パラメーターを読み取る (例: -Xmx)

Tomcat サーバーでアプリケーションを実行しています。デバッグの助けとしてログに記録できるように、-Xms -XmxおよびJVM 引数の値にアクセスしたいと考えています。-XX:MaxPermSize

にリストされているこれらの引数を見つけようとしましSystem.propertiesSystem.getEnv()が、それらはありません。それらを取得する別の方法はありますか、または代わりに、それらの存在の欠如System.propertiesSystem.getEnv()、これらのオプションが設定されていないことを示していますか?

4

2 に答える 2

4

合計、最大、空きメモリなどの基本情報を Runtime クラスから取得できます。詳細については、ランタイム JavaDocを参照してください。

十分な情報がない場合は、管理拡張機能を使用して、各メモリ プールの現在およびピーク時のメモリ使用量に関するより多くの情報を取得できます。Oracle JDK に含まれているJConsoleの [MBeans] タブを使用して、実行中の JVM に関するすべての情報を参照できます。具体的には、オブジェクト名java.lang:type=Memoryが 、およびの MBean を見てくださいjava.lang:type=MemoryPool,name=*

必要な情報を含む MBean を特定したら、ManagementFactoryクラスを使用してプログラムでアクセスできます。これにより、すべての MBean (独自のものを作成できます) への一般的なアクセスが可能になりますが、プラットフォームによって提供される一部の MBean には、次のような便利なメソッドがあります。

于 2011-12-19T17:44:02.143 に答える
3

Runtime.totalMemory()はどうですか(もちろん、権限がある場合、またはセキュリティが無効になっている場合)?

もう 1 つの回避策は、Tomcat を起動したコマンド ラインを検索して解析することです。Linuxでは簡単ですが、Windowsでは...

于 2011-12-19T17:19:18.080 に答える