读取Java JVM启动参数(例如-Xmx)
我试图找出是否有一种方法可以从正在运行的java进程中确定JVM启动属性。具体来说,我试图找出诸如-Xmx(最大堆大小)和-XX:MaxPermSize等参数的存储位置。我正在运行Sun的1.6 jvm 如果您想知道我为什么要这样做,我有许多JVM Web服务器可能配置正确,也可能配置不正确,我想将其添加到启动代码检查中。对我来说,签入一段到处部署的java代码要比手动查找和检查所有jvm启动文件容易得多。目前,无论好坏,jvm配置文件都不是我们构建过程的一部分,也没有签入源代码管理。试试:读取Java JVM启动参数(例如-Xmx),java,configuration,jvm,jvm-hotspot,Java,Configuration,Jvm,Jvm Hotspot,我试图找出是否有一种方法可以从正在运行的java进程中确定JVM启动属性。具体来说,我试图找出诸如-Xmx(最大堆大小)和-XX:MaxPermSize等参数的存储位置。我正在运行Sun的1.6 jvm 如果您想知道我为什么要这样做,我有许多JVM Web服务器可能配置正确,也可能配置不正确,我想将其添加到启动代码检查中。对我来说,签入一段到处部署的java代码要比手动查找和检查所有jvm启动文件容易得多。目前,无论好坏,jvm配置文件都不是我们构建过程的一部分,也没有签入源代码管理。试试: i
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.List;
public void runtimeParameters() {
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
List<String> aList = bean.getInputArguments();
for (int i = 0; i < aList.size(); i++) {
System.out.println( aList.get( i ) );
}
}
导入java.lang.management.ManagementFactory;
导入java.lang.management.RuntimeMXBean;
导入java.util.List;
public void runtimeParameters(){
RuntimeMXBean=ManagementFactory.getRuntimeMXBean();
List aList=bean.getInputArguments();
对于(int i=0;i
这应该显示所有JVM参数
注意:我们在VCS中也没有JVM参数,但是在数据库中,由我们自己的启动器在产品中读取。这样,我们就可以远程更改这些值,而无需重新部署JVM参数文件设置
你会发现一个很好的目录,包括 链接至:
- 召唤
- javadoc
- (例如,确定JVM是否在调试模式下运行,以改变应用程序的“网格初始化”逻辑)
- 及
- 查尔斯·纳特的
X
参数(-XX
)
使用Java7或更高版本,它与
java-XshowSettings:all
就像一个魔咒!很明显,我对java.lang.management的了解不如我应该的那么深。