[Java]在xp系统下java调用wmic命令获取窗口返回信息无反应(阻塞)的解决方案
背景:本人写了一段java代码,调用cmd命令“wmic ...”来获取系统cpu、mem、handle等资源信息。在win7操作系统下运行没有问题,在xp系统下却发现读取窗口反馈信息时无反应(阻塞),但在cmd命令行窗口运行是没问题。经过多番查找,终于找到了解决方法。
原代码:
public static String getCmdReturn(String cmdcomand) {
String CmdReturn="";
String line=null;
Runtime run = Runtime.getRuntime();
String test="C://Windows//system32//wbem//wmic.exe process where ProcessId='6024' get ThreadCount"; //调试使用
try {
Process process = run.exec(test); //test为调试使用,原为cmdcomand入参
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = bufferedReader.readLine()) != null) {
CmdReturn=CmdReturn+line;
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return CmdReturn;
}
修改后的代码:
public static String getCmdReturn_wmic(String exe, String cmdcomand)
throws IOException {
String CmdReturn = "";
String line = null;
BufferedReader br = null;
InputStream is = null;
String test1="wmic.exe";//调试使用
String test2=" process where ProcessId='6024' get ThreadCount "//调试使用
try {
Process process = Runtime.getRuntime().exec(test1);//test1为调试使用,原为exe入参
is = process.getInputStream();
OutputStreamWriter ow = new OutputStreamWriter(
process.getOutputStream());
ow.write(test2);//test2为调试使用,原为cmdcomand入参
ow.flush();
ow.close();
br = new BufferedReader(new InputStreamReader(is));
int linenum=1;
while ((line = br.readLine()) != null) {
linenum=linenum+1;
if(linenum==5){
CmdReturn = CmdReturn + line;
break;
}
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
} finally {
br.close();
}
return CmdReturn;
}
[Java]在xp系统下java调用wmic命令获取窗口返回信息无反应(阻塞)的解决方案的更多相关文章
- xp系统下硬盘安装centos6.5
引言: 电脑系统是Windows XP,电脑没有光驱.手头没有U盘.没有移动硬盘.电脑主板不支持U盘启动,在这种情况下想安装CentOS 6.0,有木有办法? 答案:有办法,请看下面教程! 必备工具: ...
- Windows XP系统下添加任务计划常出现问题解决办法
Windows XP系统下添加任务计划常出现问题解决办法 计划任务就是让电脑在指定的时间内执行指定的动作(计划动作),这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的(通俗一些就是双击 ...
- 360极速浏览器在XP系统下的一个bug
今天在做页面开发的时候,发现360浏览器在XP系统下不支持focus事件,而主流的IE(包括IE6),firefox,chrome都没有这个问题.前段开发的悲剧啊,各种浏览器兼容性的问题.
- ENC28J60 + M430G2553,用uip搭建http服务器,解决“在XP系统下可以访问,在Win7下不能访问”的问题
近日,用ENC28J60,在M430G2553上搭建一个简单的HTTP服务器,结果发现在XP系统下可以访问,在Win7下不能访问,非常奇葩的问题. 通过抓包,如下图,计算机(IP地址为192.168. ...
- XP系统下建立WIFI热点让手机、电脑能上网
http://wenku.baidu.com/view/372c5b1fa300a6c30c229f42.html 这里记录xp系统下建立共享无线网络连接,若是支持手机设备上的话,网络适配器必须是wi ...
- 在XP系统下如何访问win10共享的打印机
< > 找到 GUEST 用户,添加即可. 2. Win10 共享本地打印机 右击要共享的打印机,共享选项卡,设置共享名,这个共享很重要,要记住,尽量设置简单点.IP + 共享名就是网络打 ...
- XP系统下显示文件或文件的安全选项卡
在很多的时候,我们需要设置文件或文件夹的权限,这里一般就要用到安全选项卡,但在xp系统下,默认是不显示的,如何调出我们的“安全”选项卡呢? 具体做法:点击“工具”菜单下的"文件夹选项(o). ...
- Linux 系统下安装 rz/sz 命令及使用说明
Linux 系统下安装 rz/sz 命令及使用说明 rz/sz命令,实现将本地的文件上传到服务器或者从服务器上下载文件到本地,但是很多Linux系统初始并没有这两个命令,以下为安装和使用的具体步骤: ...
- 【linux配置】Linux系统下安装rz/sz命令以及使用说明
Linux系统下安装rz/sz命令以及使用说明 对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很 ...
随机推荐
- 9、scala函数式编程-集合操作
一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...
- Sublime Text 3下安装Emmet的问题
电脑装了Sublime Text 3,顺便安装了很多插件,今天编写前端HTML代码时,想用起前端常用的Emmet插件的功能,Emmet插件已经安装好了,奈何输入简写格式,按“CTRL+E”,没有反应. ...
- 17. CTF综合靶机渗透(十)
靶机描述:欢迎来到超级马里奥主机!这个虚拟机是对真实世界场景场景的模拟.目标是在VM中找到2个标志.根是不够的(对不起!)VM可以以多种方式开发,但请记住枚举是关键.挑战的程度是中等的.感谢VDBAN ...
- cinder 服务启动与请求流程源码分析
文章以ocata版本进行分析 cinder api 的创建和启动,和 nova api 类似,都是通过在 api-paste.ini 中定义 app ,然后将 app 加载之后,启动 wsgi ...
- libguestfs知识点
libguestfs 是一组 Linux 下的 C 语言的 API ,用来访问虚拟机的磁盘映像文件.其项目主页是http://libguestfs.org/ , 该工具包内包含的工具有virt-cat ...
- sqlachemy知识点
mysql语句 1.GROUP BY基本语法格式: GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...
- Master 接受其它组件的注册
Master对其它组件注册的处理: Master接受注册的对象主要就是: Driver.Application.Worker.注意:Executor 不会向 Master 注册,它是向 Driver ...
- P1072 HanksonHankson 的趣味题
题意:给定$a_0,a_1,b_0,b_1$ 问有多少x满足1:$gcd(x,a_0)=a_1$ 2:$lcm(x,b_0)=b_1$ 思路:暴力枚举(当然不是死枚举) 枚举$a_1$的倍数,判断.. ...
- 11gR2 ASM RAC + ASM RAC dataguard配置
1.环境说明 --primary端配置 Primary RAC Node1 Node2 Public IP 192.168.56.120 192.168.56.122 Private IP 10.0. ...
- VUE中嵌套路由
官网地址:https://router.vuejs.org/zh-cn/essentials/nested-routes.html 路由嵌套一般使用在后台管理系统中 给一个比较简单的小案例 <! ...