2011-07-29 6 views

答えて

3

優はオプションがコマンドラインで明示的に指定されている場合、受け入れ答えはのみ動作します...

RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean(); 
List<String> args=RuntimemxBean.getInputArguments(); 

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

ありがとうございます!これはまさに私が必要としていたものです。 –

+1

しかし、それがjvm引数に設定されていない場合、どのような値がわかりますか? – stu

+0

私はそれが常にあると信じています。少なくとも私がチェックした。 –

3

を持つすべてのJVMパラメータを取得することができます。 Java 6以降では、HotSpotDiagnosticMXBeanを使用して直接オプションにアクセスできます。次のJava 7のコードは便利それを読むことができます。これはRuntime.getRuntime().maxMemory()に等しいデフォルトの設定を、使用することを意味し、ゼロの値を返すことが

final HotSpotDiagnosticMXBean hsdiag = ManagementFactory 
     .getPlatformMXBean(HotSpotDiagnosticMXBean.class); 
if (hsdiag != null) { 
    System.out.println(hsdiag.getVMOption("MaxDirectMemorySize")); 
} 

注意を。たとえば、Windows 7上のOracle JDK 7u71 64ビットでは、3,690,987,520が返されます。

また、sun.miscパッケージにアクセスすることに喜んでいる場合は、sun.misc.VM.maxDirectMemory()に直接電話することができます。

+0

私のWindows 7マシンのOracle JDK 7u75では、5707,923,456という値が得られます。この値はマシン固有のものだと思います。 –

関連する問題