Java 如何通过编程访问check-Xms-Xmx和-XX:MaxPermSize JVM参数值?
可能重复:Java 如何通过编程访问check-Xms-Xmx和-XX:MaxPermSize JVM参数值?,java,tomcat,jvm-arguments,Java,Tomcat,Jvm Arguments,可能重复: 我正在Tomcat服务器上运行一个应用程序,我想访问-Xms-Xmx和-XX:MaxPermSizeJVM参数值的值,以便记录它们以获得调试帮助 我试图找到System.properties中列出的这些参数,并使用System.getEnv(),但它们不在那里。是否有其他方法获取它们,或者,它们在System.properties和System.getEnv()中不存在表示这些选项尚未设置?如何处理(当然,如果您有权限,或者安全性已禁用) 另一种解决方法是搜索启动tomcat的命令
我正在Tomcat服务器上运行一个应用程序,我想访问
-Xms-Xmx
和-XX:MaxPermSize
JVM参数值的值,以便记录它们以获得调试帮助
我试图找到System.properties
中列出的这些参数,并使用System.getEnv()
,但它们不在那里。是否有其他方法获取它们,或者,它们在System.properties
和System.getEnv()
中不存在表示这些选项尚未设置?如何处理(当然,如果您有权限,或者安全性已禁用)
另一种解决方法是搜索启动tomcat的命令行并对其进行解析。在linux中很容易,但在windows中 您可以从Runtime类获取基本信息,包括总内存、最大内存和可用内存;有关详细信息,请参阅 如果这还不够,您可以使用管理扩展来获取关于每个内存池中当前和峰值内存使用情况的更多信息。您可以使用上的MBeans选项卡浏览正在运行的JVM的所有可用信息,该选项卡包含在Oracle JDK中。具体来说,请查看对象名为java.lang:type=Memory和
java.lang:type=MemoryPool,name=*
的MBean
一旦用所需的信息标识了MBean,就可以使用类以编程方式访问它们。这允许对所有MBean进行通用访问(您可以自己创建),但对平台提供的一些MBean有方便的方法,包括:
Runtime.getRuntime().maxMemory()
。