阅读Java的JVM启动参数(如-Xmx)(Read Java JVM startup parame

2019-07-20 21:10发布

我试图找出是否有办法从正在运行的Java进程中确定的JVM启动属性。 具体来说,我试图找出参数,如-Xmx(最大堆大小)和-XX其中:MaxPermSize参数存储。 我运行Sun的JVM 1.6。

如果你想知道我为什么要做到这一点,我有一个数字,可能会或可能不会被正确配置JVM Web服务器的,我想它添加到启动代码检查。 这是很容易让我在一块Java代码被部署无处不在比手动查找并检查所有的JVM启动文件的检查。 现在是好还是坏的JVM配置文件是不是我们的构建过程的一部分或签入源代码控制。

Answer 1:

尝试:

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 ) );
  }
}

这应该显示所有JVM参数。

注意:我们没有在VCS JVM参数要么,但在数据库中,通过我们自己的发射在制作读取。 这样一来,我们就可以远程改变这些值,而无需重新部署JVM参数文件中的设置。


你会发现各种良好的sumary JVM工具在这篇文章中使用 (从“达斯汀的软件开发Cogitations和猜测” ),包括Java应用程序启动链接:

  • ManagementFactory.getRuntimeMXBean(调用
  • getInputArguments()的javadoc
  • 从Java访问JVM参数 (以确定,例如,如果JVM在调试模式下运行,以便改变一个应用程序的“网格初始化”逻辑)
  • 注释类型的MXBean
  • MXBean的Java教程

此技术利用可用的平台的MXBean的优点,因为J2SE 5 (在溶液中加入定制的MXBean支持的Java SE 6 )。

对使用Sun的JVM时,可用的JVM参数的信息,两个有用的来源是:

  • JVM选项的集合构成和
  • 查尔斯·纳特的收藏热点JVM旗帜 。

这两种资源列表,并描述了一些/全部不推荐换了休闲开发商双重的X参数( -XX )可用。



Answer 2:

在Java 7或更高版本是一样简单

java -XshowSettings:all



文章来源: Read Java JVM startup parameters (eg -Xmx)