浏览 3883 次
锁定老帖子 主题:Java获取系统所有进程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-25
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.apache.log4j.Logger; /** * @author pqcc */ public class ProcesserTest { private static Logger log = Logger.getLogger(ProcesserTest.class.getName()); public static void main(String[] args) { Process process = null; try { /** * tasklist 或 ipconfig 只要在cmd 模式下可运行都可以. */ process = Runtime.getRuntime().exec("cmd.exe /c tasklist"); BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = " "; while ((line = input.readLine()) != null) { log.info(line); } input.close(); } catch (IOException e) { e.printStackTrace(); } } } ----------------------------- 简单修改了下,没有 UNIX 的环境,所以也不知道是否能够正常运行。(类名有所变化) /** * @author pqcc */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.apache.log4j.Logger; public class ProcessorTest { private static Logger log = Logger.getLogger(ProcessorTest.class.getName()); public static void main(String[] args) { new ProcessorTest().printSystemProcessor(); } public void printSystemProcessor() { Process process = null; String command = getExecCommand(); try { process = Runtime.getRuntime().exec(command); BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = ""; while ((line = input.readLine()) != null) { log.info(line); } input.close(); } catch (IOException e) { e.printStackTrace(); } } public String getExecCommand() { // default is windows. String command = "cmd.exe /c tasklist"; String osName = System.getProperty("os.name"); if(osName != null && osName.indexOf("Windows")<0) { command = "ps aux"; } return command; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-25
晕,原来如此,最好再加上系统判断吧,跨平台:“ps aux”
|
|
返回顶楼 | |
发表时间:2008-05-25
fxsjy 写道 晕,原来如此,最好再加上系统判断吧,跨平台:“ps aux”
?? 为什么 难道 在java 上面不同的系统 去进程还有不同的 ? 学习中 看了一下代码明白了! |
|
返回顶楼 | |
发表时间:2008-05-25
fxsjy 写道 晕,原来如此,最好再加上系统判断吧,跨平台:“ps aux”
简单修改了下,没有 UNIX 的环境,所以也不知道是否能够正常运行。(类名有所变化) /** * @author pqcc */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.apache.log4j.Logger; public class ProcessorTest { private static Logger log = Logger.getLogger(ProcessorTest.class.getName()); public static void main(String[] args) { new ProcessorTest().printSystemProcessor(); } public void printSystemProcessor() { Process process = null; String command = getExecCommand(); try { process = Runtime.getRuntime().exec(command); BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = ""; while ((line = input.readLine()) != null) { log.info(line); } input.close(); } catch (IOException e) { e.printStackTrace(); } } public String getExecCommand() { // default is windows. String command = "cmd.exe /c tasklist"; String osName = System.getProperty("os.name"); if(osName != null && osName.indexOf("Windows")<0) { command = "ps aux"; } return command; } } |
|
返回顶楼 | |
发表时间:2008-05-26
Groovy in action 中 有相应例子,呵呵,更简洁
|
|
返回顶楼 | |