Двоичный исполняемый файл Java показывает разные результаты - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь запустить двоичный файл, используя мой Java-код, но он дает мне другой результат, чем когда я запускаю его сам с моего терминала.

Java-код:

Runtime rt = Runtime.getRuntime();
String path = System.getProperty("user.dir") + "/src/main/go/Sentiment";
String command = path + " " + "\"i love this\"";
System.out.println(command);

Process p = rt.exec(command);
Scanner s = new Scanner(p.getInputStream()).useDelimiter("\\A");
String output = s.hasNext() ? s.next() : "";
System.out.println(output);

Это печатает:

/ дома / ninesalt / Хранилище / elasticsearch-употребляет-OpenNLP / SRC / главное / пойти / Настроение "Я люблю это"

0

Однако, когда я запускаю ту же самую команду в своем терминале, я получаю 1. Почему это происходит?

1 Ответ

0 голосов
/ 24 января 2019

Переключитесь на Runtime.exec(String[]), чтобы избежать проблем при цитировании аргументов:

String command = System.getProperty("user.dir") + "/src/main/go/Sentiment";
String arg = "i love this";

Process p = rt.exec(new String[] { command, arg });
...