tasklist的坑
2016-03-28 00:00
197 查看
摘要: java 下想看系统中的进程
java 下想看系统中的进程,一般上网看,都会提出Runtime.executeCommand方式来执行tasklist,然后在返回结果中取得字符串,再找出进程ID。
其实早想到这种shell方式一定有问题,没想到这么多问题
坑1: windows系统非常自以为是,当执行速度过慢时,默认开启动“预读”功能,大概是将内存块直接写成文件,当执行时再取回填入内存。但它擅自将文件名连后缀改成了大写。当然windows 自己是不区分大小写的,但java区分。测试时测不出来,非要很慢的机器,在一定机率下会出。
坑2:想把一个系统做好很难,想搞坏一部分也很难。由于网上提供的情报,10多种情况,会造成RPC服务器出错,导致tasklist不能执行。在命令行下输入tasklist直接报错,程序就更不行了。暂时无解。
坑3:想不到的是,当轮询执行tasklist时,会有一定机率说找不到某个进程,但在任务管理器看时确有,而再执行tasklist又找到了。其成因还不清楚,暂时让其两次确认找不到才返回找不到,机率减至很低。
另找到wmic来执行,但未能测试坑2/3的情况,想造一个RPC不可用也很难。
java 下想看系统中的进程,一般上网看,都会提出Runtime.executeCommand方式来执行tasklist,然后在返回结果中取得字符串,再找出进程ID。
其实早想到这种shell方式一定有问题,没想到这么多问题
坑1: windows系统非常自以为是,当执行速度过慢时,默认开启动“预读”功能,大概是将内存块直接写成文件,当执行时再取回填入内存。但它擅自将文件名连后缀改成了大写。当然windows 自己是不区分大小写的,但java区分。测试时测不出来,非要很慢的机器,在一定机率下会出。
坑2:想把一个系统做好很难,想搞坏一部分也很难。由于网上提供的情报,10多种情况,会造成RPC服务器出错,导致tasklist不能执行。在命令行下输入tasklist直接报错,程序就更不行了。暂时无解。
坑3:想不到的是,当轮询执行tasklist时,会有一定机率说找不到某个进程,但在任务管理器看时确有,而再执行tasklist又找到了。其成因还不清楚,暂时让其两次确认找不到才返回找不到,机率减至很低。
另找到wmic来执行,但未能测试坑2/3的情况,想造一个RPC不可用也很难。
相关文章推荐
- 最近写的小程序
- 后台后避免重新登录
- 常用正则表达式
- 笑傲大数据时代,你必须要知道的41个Scala实战技能!
- git 遇到fatal:multiple stage entries for merged file
- 解决Eclipse 更新慢问题
- SHELL执行的三种模式
- WWW基本概念
- Apache简介
- KeyMob应用开发者服务平台帮助开发者推广和盈利
- KeyMob移动广告聚合平台-致力于打造最牛的聚合平台
- KeyMob--国内一流的移动广告聚合平台
- 移动广告聚合平台(KeyMob)_国内专业移动聚合广告管理平台
- KeyMob国内最好的移动广告聚合平台
- Admob广告使用流程
- 315“黑WIFI”启示:SSL势在必行
- php-fpm 启动参数及重要配置详解
- 提高 PHP 代码质量的 36 计(下)
- python发送邮件
- 重庆时时彩分析走势