import java.lang.management.ClassLoadingMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.OperatingSystemMXBean;
import java.lang.management.RuntimeMXBean;
import java.lang.management.ThreadMXBean;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale; public class JVMResource{ public static void main(String[] args) {
new JVMResource().printSummary();
} private NumberFormat fmtI = new DecimalFormat("###,###", new DecimalFormatSymbols(Locale.ENGLISH));
private NumberFormat fmtD = new DecimalFormat("###,##0.000", new DecimalFormatSymbols(Locale.ENGLISH)); private final int Kb = ; public void printSummary() {
RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean();
ThreadMXBean threads = ManagementFactory.getThreadMXBean();
MemoryMXBean mem = ManagementFactory.getMemoryMXBean();
ClassLoadingMXBean cl = ManagementFactory.getClassLoadingMXBean();
System.out.printf("jvmName:%s %s %s%n", runtime.getVmName(), "version", runtime.getVmVersion());
System.out.printf("jvmJavaVer:%s%n", System.getProperty("java.version"));
System.out.printf("jvmVendor:%s%n", runtime.getVmVendor());
System.out.printf("jvmUptime:%s%n", toDuration(runtime.getUptime()));
System.out.printf("threadsLive:%d%n", threads.getThreadCount());
System.out.printf("threadsDaemon:%d%n", threads.getDaemonThreadCount());
System.out.printf("threadsPeak:%d%n", threads.getPeakThreadCount());
System.out.printf("threadsTotal:%d%n", threads.getTotalStartedThreadCount());
System.out.printf("heapCurr:%d%n", mem.getHeapMemoryUsage().getUsed() / Kb);
System.out.printf("heapMax:%d%n", mem.getHeapMemoryUsage().getMax() / Kb);
System.out.printf("heapCommitted:%d%n", mem.getHeapMemoryUsage().getCommitted() / Kb);
System.out.printf("osName:%s %s %s%n", os.getName(), "version", os.getVersion());
System.out.printf("osArch:%s%n", os.getArch());
System.out.printf("osCores:%s%n", os.getAvailableProcessors());
System.out.printf("clsCurrLoaded:%s%n", cl.getLoadedClassCount());
System.out.printf("clsLoaded:%s%n", cl.getTotalLoadedClassCount());
System.out.printf("clsUnloaded:%s%n", cl.getUnloadedClassCount()); } protected String printSizeInKb(double size) {
return fmtI.format((long) (size / )) + " kbytes";
} protected String toDuration(double uptime) {
uptime /= ;
if (uptime < ) {
return fmtD.format(uptime) + " seconds";
}
uptime /= ;
if (uptime < ) {
long minutes = (long) uptime;
String s = fmtI.format(minutes) + (minutes > ? " minutes" : " minute");
return s;
}
uptime /= ;
if (uptime < ) {
long hours = (long) uptime;
long minutes = (long) ((uptime - hours) * );
String s = fmtI.format(hours) + (hours > ? " hours" : " hour");
if (minutes != ) {
s += " " + fmtI.format(minutes) + (minutes > ? " minutes" : " minute");
}
return s;
}
uptime /= ;
long days = (long) uptime;
long hours = (long) ((uptime - days) * );
String s = fmtI.format(days) + (days > ? " days" : " day");
if (hours != ) {
s += " " + fmtI.format(hours) + (hours > ? " hours" : " hour");
}
return s;
} }

相应运行结果如下:

jvmName:Java HotSpot(TM) -Bit Server VM version 25.66-b17
jvmJavaVer:1.8.0_66
jvmVendor:Oracle Corporation
jvmUptime:0.166 seconds
threadsLive:
threadsDaemon:
threadsPeak:
threadsTotal:
heapCurr:
heapMax:
heapCommitted:
osName:Mac OS X version 10.11.
osArch:x86_64
osCores:
clsCurrLoaded:
clsLoaded:
clsUnloaded:

Java获取 JVM 运行信息的更多相关文章

  1. java获取当前操作系统的信息

    java获取当前操作系统的信息 JavaOS虚拟机UnixEXT  从网上收集的一些关于java获取操作系统信息的方法,现在总结一下: 1获取本机的IP地址: private static Strin ...

  2. java获取天气预报的信息

    运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weath ...

  3. JAVA和JVM运行原理揭秘

    这里和大家简单分享一下JAVA和JVM运行的原理,Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器 ...

  4. 【java】java获取JVM启动参数 System.getProperty

    java获取JVM启动参数 System.getProperty取 -D后的key即可 public class Test { public static void main(String[] arg ...

  5. Java(JVM运行时)各种内存区域详解及扩展

    本文整理于  Java内存与垃圾回收调优 Java 堆内存 从几个sample来学习Java堆,方法区,Java栈和本地方法栈 首先来一张图让我们理清楚java运行时状态: 诚然,如上图所示:java ...

  6. 深入解析java虚拟机-jvm运行机制

    转自oschina 一:JVM基础概念 JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现.编译虚拟机的指令集与编译微处理器的指令集非常类似.Java虚拟机包括一套字 ...

  7. Java 获取到配置文件信息

    Java程序将数据库或者服务器IP写入到代码中,难免缺少灵活性. 如果写入到配置文件,部署到不通服务器上,只需要修改配置文 件即可. Java怎么读取配置文件 /** * 获取到配置文件信息 * @p ...

  8. Java 获取所有子类信息

    我以前的博客(Java Scala获取注解的类信息)介绍过通过Reflections工具通过使用特定注解的类的信息,其实本工具也可以获取接口,抽象类,类等的所有子类信息.使用方法如下: Reflect ...

  9. Java 获取JVM内存和物理内存信息

    package com.sysinfo; public class MonitorInfo { /** jvm可使用内存. */ private long totalMemory; /** jvm剩余 ...

随机推荐

  1. 使用asp.net MVC4中的Bundle遇到的问题及解决办法

    背景 之前有过使用MVC3的经验,也建过MVC4的基本样例看过,知道有bundle这么一个方法. 近日想建个网站使用MVC4,但是我觉得在基本样例上改不好,有太多无用的东西,所以就建了一个空白的MVC ...

  2. 树-伸展树(Splay Tree)

    伸展树概念 伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入.查找和删除操作.它由Daniel Sleator和Robert Tarjan创造. (01) 伸展树属于二 ...

  3. cocos2d-x编译到android平台后,增加返回键和菜单键支持

    在头文件中增加函数 virtual void keyBackClicked();//android返回键 virtual void keyMenuClicked();//android菜单键 在ini ...

  4. Visual Studio C++ Command Line

    最近在Visual Studio 2012进行vp8的开发,之前一直都是在ubuntu上进行开发,关于编译链接的一些选项可直接在makefile中定义,比如vp8的头文件都放在include文件下面, ...

  5. mysql登陆报错(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2))

    部署mysql版本信息 version: 5.6.21 具体现象: mysql服务能够正常启动如下: [root@localhost ~]# service mysqld restart Shutti ...

  6. [C语言 - 13] 运算符

    算术运算符 运算符的优先级 括号 > 正负 > 数学运算 > 位运算 > 数学对比 > 逻辑对比 > 条件运算 > 赋值运算   A.赋值运算符 复合赋值运算 ...

  7. 转载SSIS中的容器和数据流—举例说明数据转换任务

    在上一个随笔中我们熟悉了数据流任务,现在来做一个例子,通过实践学习这些介绍的内容.这个例子从AdventureWorks数据库中取得数据,然后对数据进行聚合,排序,计算产生新列操作并输入到一个.csv ...

  8. C#将对象转换成JSON字符串,Newtonsoft.Json (JSON.NET)

    官方API说明文档 http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json.htm http://www.newtonsoft.com/ ...

  9. iOS动画详解(二)

    UIImage常用的绘图操作   一个UIImage对象提供了向当前上下文绘制自身的方法.我们现在已经知道如何获取一个图片类型的上下文并将它转变成当前上下文.   平移操作:下面的代码展示了如何将UI ...

  10. http://oncenote.com/2015/09/16/Security-2-HTTPS2/ (轉載)

    上一篇<iOS安全系列之一:HTTPS>被CocoaChina转载,还顺便上了下头条: 打造安全的App!iOS安全系列之 HTTPS,但那篇文章只是介绍了比较偏应用的初级知识,对于想要深 ...