如何从Java中获取ProcessBuilder的int输出?

时间:2017-05-19 01:19:36

标签: java c++ casting processbuilder

我有一个程序应该在c ++中打开一个不同的程序,它将返回0,1,2或3.作为测试,我做了一些示例代码:

public class Tester {
    public static void main(String[] args) {
        String[] command = {"c:\\Java Prog\\helloWorld.exe"};
        ProcessBuilder proc = new ProcessBuilder(command);
        System.out.println(proc);
    }
}

C ++程序很简单:

#include <iostream>
using namespace std; // I know, I know, it's bad.
int main(void) {
    return 2;
}

打印出来:

java.lang.ProcessBuilder@1db9742

我当时正在等待。但是,当我尝试将输出转换为int(或其他任何东西)时,编译器(Eclipse Mars)告诉我它无法从ProcessBuilder转换为[在此处插入您选择的任何变量类型]。

我做错了什么?我可以将输出格式化为int吗?如果没有,我该怎么办?提前致谢

1 个答案:

答案 0 :(得分:0)

  

如何从Java中获取ProcessBuilder的int输出?

你不是。你可以从Process获得它。

这里缺少一切。你甚至没有执行过程,更不用说做任何有关获得其回报价值的事情了。

你需要:

  1. 创建并启动Process
  2. 关闭其输入流并使用其输出流。在这种特殊情况下,没有输入或输出,所以它并不重要,但在一般情况下有。
  3. 获取Process.exitValue()