Можно ли зарегистрировать, как JVM был вызван (включая все -D -Xmx и т. д.) - PullRequest
0 голосов
/ 20 апреля 2011

Чтобы упростить поиск и устранение неисправностей, я хотел бы записать в наши файлы журнала точно, как был вызван процесс Java.

В идеале это должно включать:

  • аргументы: хорошо, это легко, я уже делаю это.
  • -Xmx256m -XX: + Использовать материал типа ParallelGC
  • -Dsome.arg = VALUE вещи
  • другие параметры, такие как -server -cp "./lib;./bin" ...

Есть ли способ сделать это?

РЕДАКТИРОВАТЬ: Мне НУЖНО сделать это изнутри Java, а не снаружи

Ответы [ 2 ]

3 голосов
/ 20 апреля 2011

Использовать RuntimeMXBean.getInputArguments():

List<String> arguments = ManagementFactory.getRuntimeMXBean().getInputArguments();

Это будет возвращать только аргументы, которые передаются в JVM во время инициализации.

Дополнительная информация может быть найдена сдругие методы RuntimeMXBean, такие как getClassPath(), getVmName(), ...

0 голосов
/ 20 апреля 2011

У вас есть пакетный файл, который запускает ваше приложение, и операторы echo для печати перечисленных выше сведений.

Например, укажите ENV VAR как JAVA_OPTS, затем установите для него значение, как показано ниже

set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:MaxPermSize=256m -Xms128m -Xmx1024m

Как только он установлен, используйте операторы echo, как показано ниже, чтобы напечатать детали.

echo   JAVA_OPTS: %JAVA_OPTS%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...