From 7392cb24c7a9b00bbf9f7d02fa472db56c45d36f Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Mon, 6 Jun 2022 19:31:48 -0500 Subject: Add VrptAcoCallService in odiparback Works in Linux. But still needs testing on Windows. --- .../odiparback/services/VrptAcoCallService.java | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 back/odiparback/src/main/java/pe/edu/pucp/odiparback/services/VrptAcoCallService.java (limited to 'back') diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/services/VrptAcoCallService.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/services/VrptAcoCallService.java new file mode 100644 index 0000000..63dc576 --- /dev/null +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/services/VrptAcoCallService.java @@ -0,0 +1,61 @@ +package pe.edu.pucp.odiparback.services; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; + +public class VrptAcoCallService { + /* + * Linux: + * - shell: sh + * - command: + * cd /path/to/VRPTW-ACO-python + * python3 example1.py + * + * Windows: + * - shell: cmd + * - command: + * cd c:\path\to\VRPTW-ACO-python + * python example1.py + * + * Salida del algoritmo en variable `output` + * (Demora unos 2 min en ejecutar el algoritmo) + */ + public static void main(String[] args) { + String command = "pwd && date && ls ~"; + command = "~/.odiparpack"; + try { + System.out.println( + System.getProperty("os.name") + "\n" + + System.getProperty("user.name") + ); + ProcessBuilder pb + = new ProcessBuilder("sh", "-c", command); + pb.directory( + new File(System.getProperty("user.home")) + ); + Process process = pb.start(); + + StringBuilder output = new StringBuilder(); + BufferedReader reader + = new BufferedReader(new InputStreamReader( + process.getInputStream() + )); + String line; + while ((line = reader.readLine()) != null) { + output.append(line + '\n'); + } + int exitVal = process.waitFor(); + if (exitVal == 0) { + System.out.println("The output is:"); + System.out.println(output); + //System.exit(0); + } + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +} -- cgit v1.2.3