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. 设计模式_Interpreter_解释器模式

    形象例子: 俺有一个<泡MM真经>,上面有各种泡MM的攻略,比如说去吃西餐的步骤.去看电影的方法等等,跟MM约会时,只要做一个Interpreter,照着上面的脚本执行就可以了.解释器模式 ...

  2. Python Paste.deploy 笔记

    首先python paste是一个WSGI工具包,在WSGI的基础上包装了几层,让应用管理和实现变得方便.说实话,Python Paste的文档做的真差劲!加之python代码可读性本来就不怎么滴,真 ...

  3. javascript——继承

    内容: 1.继承的概念.继承分为那几种继承及各种继承的区别 2.js中有那几种继承方式及各种继承的优缺点 3.总结

  4. 2.1CUDA-Thread

    在HOST端我们会分配block的dimension, grid的dimension.但是对应到实际的硬件是如何执行这些硬件的呢? 如下图: lanuch kernel 执行一个grid. 一个Gri ...

  5. 4.1Reduction模型

    1. Reduction Reduction是一种广泛使用的计算模型,特别是在并行计算领域.简单地来说,Reduction就是一系列的划分(Partition)和汇总(Summarize)操作的集合: ...

  6. 题解西电OJ (Problem 1006 - 转盘游戏)--动态规划

    题目链接 : http://acm.xidian.edu.cn/land/problem/detail?problem_id=1006 Description wm最近喜欢上一种无聊的转盘解锁游戏,他 ...

  7. Ubuntu 14.04.3 LTS 配置 DNS Server

    我们目的是用一台局域网机器完成 192.168.1.113 <-->cloudshield.com的解析,指定A记录和CNAME; 0.关于Ubuntu 14.04.2 LTS 下载.安装 ...

  8. jsp?echo

  9. iOS7自定义statusbar和navigationbar的若干问题

    当然有许多问题是这篇文章中没有提到的,按照文章的方法进行设置,你可能会遇到以下问题: 1.navigationbar的背景图片自定义以后,statusbar虽然和navigationbar共用了背景图 ...

  10. Java快捷键

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...