我的應用程序部署在Tomcat上,並且我在/etc/default/tomcat7
中配置了JAVA_OPTS
環境變量。在運行時得到JAVA_OPTS
似乎有一百萬個不同的地方,這些變量可以提供給Tomcat,所以我想檢查我提供的值是實際使用的。有什麼我可以在運行時檢查以確定此變量的值。我檢查了System.getProperties()
,但它似乎並不存在。
我的應用程序部署在Tomcat上,並且我在/etc/default/tomcat7
中配置了JAVA_OPTS
環境變量。在運行時得到JAVA_OPTS
似乎有一百萬個不同的地方,這些變量可以提供給Tomcat,所以我想檢查我提供的值是實際使用的。有什麼我可以在運行時檢查以確定此變量的值。我檢查了System.getProperties()
,但它似乎並不存在。
如果您正在尋找只是的特性替代和JVM參數,你可以使用RuntimeMXBean:
RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean();
System.out.println(mxBean.getInputArguments());
例如,使用下面的命令行運行:
java -Xms512m -Xmx1024m -Dtest.prop=foo com.example.sandbox.RuntimeMXBeanExample
我得到以下輸出:
[-Xms512m, -Xmx1024m, -Dtest.prop=foo]
不是e這是而不是包括傳遞給main()
方法的參數。
您可以按照建議使用System.getenv("JAVA_OPTS")
。
如果你不想修改代碼比你可以使用一些方法,
Java工具
jps -v
顯示與Java參數處理
jvisualvm
連接到Java進程讓我們來檢查包括MXBeans在內的一些屬性
GNU/Linux工具
ps e
顯示環境變量傳遞給過程一個重要的事情,雖然職位是舊的。無論你傳遞什麼變量,它應該在你正在執行的類名之前,否則它將被忽略。
下面將工作:
例如:java -classpath。 -Dformat = XLS -DTabname = \ 「基礎數據新\」 com.cg.bench.GenerateReport
下面將不起作用:
WRONG例如:java -classpath。 com.cg.bench.GenerateReport -Dformat = xls -DTabname = \「Base data new \」
http://docs.oracle.com/javase/6/docs/api/java/lang/System.html# GETENV(java.lang.String中) – PeterMmm