从Java中查找进程

时间:2009-08-10 16:48:30

标签: java eclipse-rcp native-methods

在Java中或通过一些Eclipse插件,是否可以通过名称​​找到一个没有下拉到本机代码的进程?具体来说,我想确定Web浏览器是否正在运行,并让用户知道他们可能需要重新启动浏览器。

我知道本机代码总是一个选项,但我想避免设置另一个JNI库,如果我可以避免它。

2 个答案:

答案 0 :(得分:1)

这实际上是一个重复的问题,请参阅original one

这里有两个选项,一个是运行命令行工具,它将列出正在运行的进程并解析其输出。正如Jay在Linux上所提到的,可以使用“ps”,在Windows上你需要捆绑一些工具,或者来自GnuWin / cygwin / etc的ps端口或者像PsList这样的本机工具,或者查看{ {3}}

您已经知道的第二个选项是使用JNI,但是您不需要从头开始编写代码,您可以考虑使用sample。它为常见的本机OS功能提供了易于使用的Java API。他们还为开源项目提供免费许可。

答案 1 :(得分:0)

我不知道如何直接从Java获取正在运行的进程列表。如果你在Linux上,你可以创建一个执行“ps”的进程,读取进程的InputStream来拦截结果,并解析它。您不需要转到JNI级别来执行此操作:您可以使用Process执行shell命令。