gpt4 book ai didi

java - 如何知道用户何时关闭 Java 中使用 exec() 执行的程序

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

我正在使用 exec() 在 Java 中启动 VLC:

Process process = Runtime.getRuntime().exec("/usr/bin/vlc -");

我如何知道 VLC 窗口何时关闭?我知道 exitValue() 返回进程的退出值。如果进程尚未完成,则返回 IllegalThreadStateException。所以我想我可以有一个带有 try/catch 的 while 循环来继续检查 exitValue() 是否抛出异常,如果没有抛出异常,则意味着该过程已完成。但这似乎是浪费 CPU 时间。

最佳答案

您可以使用 Process 对象 ( https://docs.oracle.com/javase/8/docs/api/java/lang/Process.html#waitFor-- ) 的 waitFor() 方法

Process process = Runtime.getRuntime().exec("/usr/bin/vlc -");
int exitCode;
try {
exitCode = process.waitFor();
} catch(InterruptedException e) {
}

这将使您当前的线程等待进程的终止(不忙等待 = CPU 友好),或者直到它被中断。

关于java - 如何知道用户何时关闭 Java 中使用 exec() 执行的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026557/

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