有没有办法使用java来检测哪些应用程序正在电脑上运行?我的意思是,如果我运行的是浏览器、office应用程序和windows资源管理器,我能否使用java来检测这些应用程序并找出它们运行了多长时间?
发布于 2011-03-11 13:45:24
没有纯Java方法可以做到这一点。
最简单的方法是使用Runtime.exec(...)运行外部命令,以列出当前正在运行的命令的信息,然后取消选择生成的输出流。您运行的命令(及其参数)和结果流的格式将是特定于平台的。
@Jigar建议在Linux上使用"ps“命令,在Windows上使用"wmic”命令。@Mahesh建议在Linux上使用"top“,但这并不能显示所有应用程序...它的输出实际上并不是为此目的而设计的。Windows上的另一种可能是"tasklist";请参阅@Jigar的链接页面。
另一个问题是决定什么构成应用程序……为了你的上市目的。例如,"ps“和"top”没有区分不同类型的进程。(就Linux操作系统而言,没有真正的区别……)
最后,在机器外部公开的服务中做这类事情可能不是一个好主意;例如,在Servlet或JSP中。让其他人看到您的服务器上正在运行的内容可能会带来安全风险。
发布于 2011-03-11 13:04:19
发布于 2011-03-11 13:05:24
使用其中一个Runtime.exec方法来运行任何能让您获得所需信息的shell命令。
https://stackoverflow.com/questions/5269142
复制相似问题