等到程序运行

时间:2017-02-24 16:00:00

标签: java

我的代码如下。它会检查程序是否正在运行。如果程序没有运行,它将再次检查它,直到它发现程序正在运行以结束循环。事情是我不知道如何循环它。

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            
        }    
    }
}

但是输出是空的。任何人都可以告诉我我的代码有什么问题吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

因为你的循环错了。首先,您有一个循环,用于读取单个String中的任务列表。然后,此列表不太可能显示为单个单词msiexec.exe(请不要使用==来测试字符串),因此第二个循环的条件始终为false(只需删除第二个循环,然后测试pidInfo是否包含单词。