加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

Java调用Linux top命令方法及遇到问题处理

发布时间:2021-11-25 17:48:37 所属栏目:教程 来源:互联网
导读:最近在做一个系统的Tuning工作,由于要跑几个小时,所以准确地记录系统运行过程中的各个性能是需要完成的一个工作,所以花了两个小时解决了这个问题,写上博客作为备忘。 Java的Runtime类提供了一种接受jvm虚拟机环境,并且运行命令的方法,具体代码如下 Runt
最近在做一个系统的Tuning工作,由于要跑几个小时,所以准确地记录系统运行过程中的各个性能是需要完成的一个工作,所以花了两个小时解决了这个问题,写上博客作为备忘。
 
Java的Runtime类提供了一种接受jvm虚拟机环境,并且运行命令的方法,具体代码如下
 
Runtime rt = Runtime.getRuntime  
try{  
  Process p = rt.exec("top -b -n 1");  
}catch(exception e){}  
上述命令完成了使用java程序调用top -b -n 1命令的方法。
 
并且利用
 
BufferedReader in = null;  
  
in = new BufferedReader(new InputStreamReader(p.getInputStream()));  
可以获得p程序的输出。
借此通过周期性的调用上述方法(例如1s1次)就可以获得关心程序的cpu占用程度以及内存占用程度了。
 
 
 
在记录上述程序结果的时候,我发现Date得到的结果并不是本时区的,
 
于是利用了Calendar类的设置时区方法得到本地时间。
 
其核心思路就是用Calendar类设置一个时区,然后将Calendar类传递给Date类。
 
TimeZone timeZoneShanghai = TimeZone.getTimeZone("Asia/Shanghai");  
Calendar cal = Calendar.getInstance();  
cal.setTimeZone(timeZoneShanghai);  
Date date = cal.getTime();  
这样,关于利用java调用top命令并且将关心结果输出的问题基本解决。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读