From d2aa9473613af8cd99c3a6dea0331765ecb830dc Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 17 十二月 2024 13:57:20 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java | 54 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 38 insertions(+), 16 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java index a293cf0..ed017d2 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java @@ -28,10 +28,9 @@ import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -106,19 +105,41 @@ long startTime = System.currentTimeMillis(); Resource resource = new ClassPathResource("agv.py"); - File file = resource.getFile(); - ProcessBuilder processBuilder = new ProcessBuilder( - "python" - , file.getAbsolutePath() - , String.valueOf(avoidDistance) - , redisProperties.getHost() - , redisProperties.getPassword() - , String.valueOf(redisProperties.getPort()) - , String.valueOf(redisProperties.getIndex()) - ); - processBuilder.redirectErrorStream(true); + + File tempScript = null; try { + InputStream is = resource.getInputStream(); + tempScript = File.createTempFile("agv", ".py"); + tempScript.deleteOnExit(); + + Files.copy(is, tempScript.toPath(), StandardCopyOption.REPLACE_EXISTING); + tempScript.setExecutable(true); + + ProcessBuilder processBuilder = new ProcessBuilder( + "python" // 鎴栬�� "python3" 鍙栧喅浜庣郴缁熼厤缃� + , tempScript.getAbsolutePath() + , String.valueOf(avoidDistance) + , redisProperties.getHost() + , redisProperties.getPassword() + , String.valueOf(redisProperties.getPort()) + , String.valueOf(redisProperties.getIndex()) + ); + + processBuilder.redirectErrorStream(true); + +// File file = resource.getFile(); +// ProcessBuilder processBuilder = new ProcessBuilder( +// "python" +// , file.getAbsolutePath() +// , String.valueOf(avoidDistance) +// , redisProperties.getHost() +// , redisProperties.getPassword() +// , String.valueOf(redisProperties.getPort()) +// , String.valueOf(redisProperties.getIndex()) +// ); +// processBuilder.redirectErrorStream(true); + Process process = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); @@ -130,7 +151,8 @@ int exitCode = process.waitFor(); if (exitCode != 0) { - System.out.println("Python script exited with error code: " + exitCode); + log.error("Python script exited with error code: {}", exitCode); + log.error("python error:{}", builder.toString()); return; } reader.close(); -- Gitblit v1.9.1