假设我有一个类似以下的配置文件来启动我的应用程序。我如何从应用程序内部了解,比如-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
答案 0 :(得分:6)
使用System.getProperty()获取所有变量的映射。这仅适用于以-D
开头的属性。
要获取所有可以执行的JVM参数
RuntimeMXBean runtimemxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = runtimemxBean.getInputArguments();
答案 1 :(得分:3)
-Dlog4j.configuration
设置系统属性,因此:System.getProperty("log4j.configuration")
。