-2
私は以下のコードを取得しました。プログラムが実行中かどうかをチェックします。プログラムが実行されていない場合、ループが終了するまでプログラムが実行されていることがわかるまで、プログラムは再度チェックします。そして、私はそれをループする方法がわかりません。はプログラムが実行されるまで待ちます
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
}
}
}
出力は空です。誰が私のコードに間違っているか教えてもらえますか?どんな助けもありがとう。
msiexec.exeが実行されているかどうかを2番目のループで確認します。それが実行されていない場合、実行されるかどうかを確認するために再びループします。指定されたプロセスが実行中であれば、ループは終了します。上記のコードを編集しました。 代替コードはありますか? –
2回目のループは必要ありません!あなたはすでに、すべてのタスク名を単一の文字列で捕まえました。次に、文字列にタスク名が含まれているかどうかをテストします。 –