From 62dbd7e739a4ee3ab954445352a93a29b2face8c Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 16 十二月 2024 15:33:15 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 15 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..405b339 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())); -- Gitblit v1.9.1