我的代码如下。它会检查程序是否正在运行。如果程序没有运行,它将再次检查它,直到它发现程序正在运行以结束循环。事情是我不知道如何循环它。
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
String line;
String pidInfo ="";
Process p =Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
try (BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
while ((line = input.readLine()) != null) {
pidInfo+=line;
}
}
while(pidInfo == "msiexec.exe")
if(pidInfo.contains("msiexec.exe")) {
System.out.println("Notepad is running");
TimeUnit.SECONDS.sleep(120);
} else {
System.out.println("Notepad is not running");
loop
}
}
}
但是输出是空的。任何人都可以告诉我我的代码有什么问题吗?任何帮助将不胜感激。
答案 0 :(得分:0)
因为你的循环错了。首先,您有一个循环,用于读取单个String
中的任务列表。然后,此列表不太可能显示为单个单词msiexec.exe
(请不要使用==
来测试字符串),因此第二个循环的条件始终为false(只需删除第二个循环,然后测试pidInfo
是否包含单词。