如何从Java内部访问jvmArgs?

时间:2011-08-29 19:01:35

标签: java tomcat

假设我有一个类似以下的配置文件来启动我的应用程序。我如何从应用程序内部了解,比如-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 个答案:

答案 0 :(得分:6)

使用System.getProperty()获取所有变量的映射。这仅适用于以-D开头的属性。

要获取所有可以执行的JVM参数

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

答案 1 :(得分:3)

-Dlog4j.configuration设置系统属性,因此:System.getProperty("log4j.configuration")