バッチファイルを実行する次のJavaコードスニペットがあります(フラグに応じてファイルの名前を変更します)。このコードは正しく動作します。しかし、その行while( isRunning(p) ) {}
にコメントを付けると、機能しません。誰でもその理由を教えてもらえますか?
public static void main(String[] args) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder( fileManipulatorScriptLocation, "Rename_File", "a.txt", "b.txt" );
pb.directory( new File(targetDirectory) );
Process p = pb.start();
while( isRunning(p) ) {}
}
public static boolean isRunning(Process process) {
try {
process.exitValue();
return false;
} catch (IllegalThreadStateException e) {
return true;
}
}