From 04c1f0bda6334a6bd6a11b84f523cbf48bfbc0ec Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 30 Mar 2023 14:08:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20=E5=8F=AF?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整等待方式 --- .../wabestway/recall/web/OrderController.java | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 30c6ee0..c867be0 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -130,18 +130,33 @@ public class OrderController { processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 Process process = processBuilder.start(); - // 读取命令输出 - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String line; - while ((line = reader.readLine()) != null) { - System.out.println(line); + + Thread processThread = new Thread(() -> { + try { + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + // 等待命令执行完成 + int exitCode = process.waitFor(); + + System.out.println("Command exited with code " + exitCode); + } catch (InterruptedException | IOException e) { + e.printStackTrace(); + } + }); + processThread.start(); + + // Continue with other tasks here... + + try { + processThread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); } - reader.close(); - - // 等待命令执行完成 - int exitCode = process.waitFor(); - - System.out.println("Command exited with code " + exitCode); File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) {