فهرست منبع

water docker 求解

huangxingxing 9 ماه پیش
والد
کامیت
af86c62d90
1فایلهای تغییر یافته به همراه24 افزوده شده و 8 حذف شده
  1. 24 8
      src/main/java/com/miniframe/bisiness/system/D00008Service.java

+ 24 - 8
src/main/java/com/miniframe/bisiness/system/D00008Service.java

@@ -404,17 +404,33 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 		CompletableFuture<Void> cf = CompletableFuture.supplyAsync(()->{
 			try {
 				LogService.addLog(aid,jid,"Water","求解——————————————————开始");
-				Runtime runtime = Runtime.getRuntime();
-				Process p =null;
-				p= runtime.exec("sh "+TemplateGenerator.BPATH+"/"+aid+"/"+jid+"/water"+"/"+"runWater.sh");
-				InputStream fis = p.getInputStream();
-				InputStreamReader isr = new InputStreamReader(fis);
-				BufferedReader br = new BufferedReader(isr);
+//				Runtime runtime = Runtime.getRuntime();
+//				Process p =null;
+//				p= runtime.exec("sh "+TemplateGenerator.BPATH+"/"+aid+"/"+jid+"/water"+"/"+"runWater.sh");
+//				InputStream fis = p.getInputStream();
+//				InputStreamReader isr = new InputStreamReader(fis);
+//				BufferedReader br = new BufferedReader(isr);
+//				String line = null;
+//				while ((line = br.readLine()) != null) {
+//					LogService.addLog(aid,jid,"Water",line);
+//					System.out.println(line);
+//				}
+
+				ProcessBuilder processBuilder = new ProcessBuilder("sh",TemplateGenerator.BPATH+"/"+aid+"/"+jid+"/water"+"/"+"runWater.sh");
+
+				Process process = processBuilder.start();
+				processBuilder.redirectErrorStream(true); // 将错误流合并到标准输出流
+				// 读取命令的输出
+				BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
 				String line = null;
-				while ((line = br.readLine()) != null) {
+				while ((line = reader.readLine()) != null) {
 					LogService.addLog(aid,jid,"Water",line);
 					System.out.println(line);
 				}
+				// 等待命令执行完成
+				int exitCode = process.waitFor();
+				System.out.println("\nExited with code: " + exitCode);
+
 
 
 				saveMonitorValue(aid,jid);
@@ -422,7 +438,7 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 				saveWayValue(aid,jid);
 				JobSucces(jid);
 				LogService.addLog(aid,jid,"Water","求解——————————————————成功");
-			} catch (IOException | BusinessException e) {
+			} catch (IOException | BusinessException | InterruptedException e) {
 				LogService.addLog(aid,jid,"Water","求解——————————————————失败");
 				JobError(jid);
 				e.printStackTrace();