gpt4 book ai didi

java - 捕获 Java 进程是否崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:24 25 4
gpt4 key购买 nike

我运行java进程来使用ffmpeg.exe转换视频。

Runtime rt = Runtime.getRuntime();
String cmd = FFMPEGFULLPATH + " -y -i " + '"' + mpeg4File + '"' + " -vcodec libx264 -vsync 2 " + '"' + H264file + '"';

Process pr = rt.exec(cmd);

ThreadedTranscoderIO errorHandler = new ThreadedTranscoderIO(pr.getErrorStream(), "Error Stream");
errorHandler.start();
ThreadedTranscoderIO inputHandler = new ThreadedTranscoderIO(pr.getInputStream(), "Output Stream");
inputHandler.start();

try {
pr.waitFor();
} catch (InterruptedException e) {
LiveApplication.logger.info("Some shit happens during convertation 2 ");
throw new IOException("UseTranscoderBlocking - Run_FFMPEG - process interrupted " + e);
}

但是当进程开始时,有时特别是对于大文件,但并不总是我收到此 Windows 消息:

enter image description here

这种情况仅发生在 Windows Server 2008 上,而不会发生在 Windows 7 上。

我有 2 个问题:

  1. 为什么这个过程会失败?
  2. 我可以在 Java 中捕获此失败吗,关闭这个窗口并继续线程执行(也许我会重新启动这个过程)。

最佳答案

查看Process.waitFor()的返回值。如果进程崩溃,它可能会返回一个不同的错误代码(可能是负数)。

参见here有关不同操作系统上的崩溃如何影响退出代码的一些示例。

关于java - 捕获 Java 进程是否崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8890508/

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