gpt4 book ai didi

cmd 中的 Java PID 没有改变

转载 作者:行者123 更新时间:2023-12-01 13:09:22 25 4
gpt4 key购买 nike

我有一个每 30 秒运行一次的 Swing 计时器,它调用一个方法,我可以在该方法中搜索从列表中获取的一些特定应用程序的 PID。

这是调用的方法中的代码。

try {
Runtime r = Runtime.getRuntime();
Process p = r.exec("tasklist");

BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String inputLine = "";

while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
for (int i = 0; i < runningAppList.size(); i++) {
if (inputLine.contains(runningAppList.get(i).getExecutableName())) {
appPIDNumber = inputLine.substring(28, 35).trim();
break;
} else {
appPIDNumber = "";
}
}
}

in.close();
} catch (IOException e) {
LoggingUtils.LogExceptions(LoggingConstants.ERROR, e.toString());
}

因此,如果我的应用程序正在运行并且我启动应用程序,我会获得 PID,但是当我关闭应用程序时,它仍然显示 PID 并且不会将其清除回“”;我知道我错过了一些小事。

谢谢。

最佳答案

我认为这是因为runningAppList。如果应用程序关闭,则该列表可能为空,因此不会执行“while”循环,并且变量 appPIDNumber 不会设置为空。

第二个选项是,在应用程序关闭后,r.exec("tasklist") 不包含任何行。

无论如何,似乎您必须在“while”循环之前将 appPIDNumber 设置为空。

关于cmd 中的 Java PID 没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com