Java运行时二进制文件显示不同的结果

时间:2019-01-24 15:03:41

标签: java runtime binaries

我正在尝试使用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);

此打印:

  

/ home / ninesalt / repositories / elasticsearch-ingest-opennlp / src / main / go / Sentiment   “我喜欢这个”

     

0

但是,当我在终端中执行相同的命令时,却得到1。为什么会这样?

1 个答案:

答案 0 :(得分:0)

切换到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 });