2013-06-19 101 views
2

我的應用程序部署在Tomcat上,並且我在/etc/default/tomcat7中配置了JAVA_OPTS環境變量。在運行時得到JAVA_OPTS

似乎有一百萬個不同的地方,這些變量可以提供給Tomcat,所以我想檢查我提供的值是實際使用的。有什麼我可以在運行時檢查以確定此變量的值。我檢查了System.getProperties(),但它似乎並不存在。

+3

http://docs.oracle.com/javase/6/docs/api/java/lang/System.html# GETENV(java.lang.String中) – PeterMmm

回答

2

如果您正在尋找只是的特性替代和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()方法的參數。

0

您可以按照建議使用System.getenv("JAVA_OPTS")

如果你不想修改代碼比你可以使用一些方法,

Java工具

  1. jps -v顯示與Java參數處理

  2. jvisualvm連接到Java進程讓我們來檢查包括MXBeans在內的一些屬性

GNU/Linux工具

  1. ps e顯示環境變量傳遞給過程
1

一個重要的事情,雖然職位是舊的。無論你傳遞什麼變量,它應該在你正在執行的類名之前,否則它將被忽略。

下面將工作:

例如:java -classpath。 -Dformat = XLS -DTabname = \ 「基礎數據新\」 com.cg.bench.GenerateReport

下面將不起作用:

WRONG例如:java -classpath。 com.cg.bench.GenerateReport -Dformat = xls -DTabname = \「Base data new \」