Как получить доступ к jvmArgs изнутри Java? - PullRequest
2 голосов
/ 29 августа 2011

Предположим, у меня есть файл конфигурации, подобный следующему, чтобы запустить мое приложение. Как я могу узнать из приложения, скажем, значение -Dlog4j.configuration

jvmArg=-server
jvmArg=-Xms512m
jvmArg=-Xmx1024m
jvmArg=-Dcatalina.base=tomcat
jvmArg=-Dcatalina.home={tomcat_HOME}
jvmArg=-Dcatalina.config=file:cfg/catalina.properties
jvmArg=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
jvmArg=-Djava.util.logging.config.file=cfg/logging.properties
javaMain=org.apache.catalina.startup.Bootstrap
javaMainArg=-config ../cfg/server.xml
javaMainArg=start
jvmArg=-Dlog.directory=log
jvmArg=-Dlog4j.configuration=file:/cfg/test/log4j.properties

Ответы [ 2 ]

6 голосов
/ 29 августа 2011

Используйте System.getProperty () , чтобы получить карту всех переменных. Это работает только для свойств, которые начинаются с -D.

Чтобы получить все аргументы JVM, вы можете сделать

RuntimeMXBean runtimemxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimemxBean.getInputArguments();
3 голосов
/ 29 августа 2011

-Dlog4j.configuration устанавливает системное свойство, поэтому для этого: System.getProperty("log4j.configuration").

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