Подтвердить что ты не робот

Прочитайте параметры запуска Java JVM (например, -Xmx)

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

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

4b9b3361

Ответ 1

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

Это должно показать все параметры JVM.

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


Вы найдете хорошую оценку различных инструментов JVM для использования в этой статье (из "Dustin Software Cogitations and Speculations" ), в том числе Java Application Launcher ссылки на:

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

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

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

Ответ 2

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

java -XshowSettings:all