2009-10-05 7 views
45

Я пытаюсь выяснить, есть ли способ определить свойства запуска JVM из работающего Java-процесса. В частности, я пытаюсь выяснить, где хранятся такие параметры, как -Xmx (максимальный размер кучи) и -XX: MaxPermSize. Я запускаю Sun 1,6 jvm.Прочитать параметры запуска Java JVM (например, -Xmx)

Если вам интересно, почему я хочу это сделать, у меня есть несколько веб-серверов JVM, которые могут или не могут быть настроены правильно, и я хочу добавить это в проверку кода запуска. Мне гораздо легче проверить кусок java-кода, который развертывается повсюду, чем вручную находить и проверять все файлы запуска jvm. Прямо сейчас файлы конфигурации jvm для улучшения или хуже не являются частью нашего процесса сборки или проверены в исходном элементе управления.

ответ

52

Try:

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)); 
    } 
} 

Это должно показать все параметры виртуальной машины Java.

Примечание: у нас нет параметров JVM в VCS, но в базе данных, прочитанной нашими собственными пусковыми установками в продуктах. Таким образом, мы можем удаленно изменять эти значения без необходимости повторного развертывания параметров файла параметров JVM.


Вы найдете хороший sumary различной JVM tools to use in this article (от "Dustin's Software Development Cogitations and Speculations"), в том числе Java Application Launcher ссылки на:

Этот метод использует платформу MXBeans доступного поскольку J2SE 5 (поддержка пользовательских MXBeans была добавлена ​​в Java SE 6).

Два полезных источников информации о параметрах виртуальной машины Java, доступных при использовании виртуальной машины Java Sun являются:

Оба этого список ресурсов и описать некоторые/все не рекомендованный-для-казуальный-разработчик двойных X аргументов (-XX), которые доступны.

+0

работает как шарм! Я явно не знаю java.lang.management, а также должен. –

+0

Что делать, если это Java 1.4? –

9

С Java 7 или более поздней версии, это так же просто, как

java -XshowSettings:all

Смежные вопросы