相关疑难解决方法(0)

以charset安全的方式获取Windows上的进程列表

这篇文章提供了一个解决方案来检索Windows下正在运行的进程列表.实质上它确实:

String cmd = System.getenv("windir") + "\\system32\\" + "tasklist.exe";
Process p = Runtime.getRuntime().exec(cmd);
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader input = new BufferedReader(isr);
Run Code Online (Sandbox Code Playgroud)

然后读取输入.

它看起来和工作得很好,但我想知道任务列表使用的字符集是否可能不是默认的字符集,并且此调用可能会失败?

例如,关于不同可执行文件的另一个问题表明它可能会导致一些问题.

如果是这种情况,有没有办法确定适当的字符集是什么?

java list process character-encoding

8
推荐指数
2
解决办法
4477
查看次数

如何检查进程是否在 Windows 上运行?

我正在尝试做的是一个程序,以了解它是否WindowsJava. 我在网上查了一下,找到了两种不同的解决方案:

但这根本不是我要找的。

根据选项 1,我想要一种方法来引用进程(并检测它是否处于活动状态/正在运行),但无需进行完整tasklist搜索,然后对其进行搜索。我正在寻找是否有直接的方法来做到这一点。

我也向任务列表添加了一个过滤器,但找不到任何过滤器来获取我正在寻找的进程。我tasklist /?在命令行上看到了所有使用的选项。

然后我搜索了有关第二个选项和wmic(我以前从未听说过的)的信息,它似乎wmic允许您在命令行上执行任务(如果我错了,请纠正我)。

所以,在这里我有两个问题

  • 是否有直接方法可以知道进程是否在使用 Java 的 Windows 上处于活动状态?尽量避免在完整的任务列表中搜索或使用wmic.

  • 如果不可能,如果我们谈论高效编程,我上面提到的两个选项中哪个更好?

提前致谢!

java windows process

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

process ×2

character-encoding ×1

list ×1

windows ×1