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

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

有帮助吗?

解决方案

这实际上是一个重复的问题,请参阅 原始.

您在这里有两个选项,一个是运行命令行工具,该工具将列出运行过程并解析其输出。正如Jay在Linux上提到的那样,您可以在Windows上使用“ PS”,您需要捆绑一些工具,要么是Gnuwin/Cygwin/etc的PS端口或像本机工具一样 PSLIST, ,或看 样本.

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

其他提示

我不知道直接从Java获取运行过程列表的任何方法。如果您在Linux上,则可以创建一个执行“ PS”的过程,读取该过程的输入流以拦截结果,然后对其进行解析。您不需要到JNI级别即可完成:您可以使用进程执行shell命令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top