如何在Java中从ProcessBuilder获取int输出? 我有一个程序,它可以在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中从ProcessBuilder获取int输出? 我有一个程序,它可以在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,c++,casting,processbuilder,Java,C++,Casting,Processbuilder,我早就料到了。然而,当我试图将输出转换为int(或其他任何形式)时,编译器(eclipsemars)告诉我,它无法从ProcessBuilder转换为[insert any variable type of your choice here] 我做错了什么?我可以将输出格式化为int吗?如果没有,我该怎么做?提前谢谢 如何在Java中从ProcessBuilder获取int输出 你没有。您可以从过程中获得它 这里什么都不见了。您甚至还没有执行该流程,更不用说做任何关于获取其返回值的合理操作了 您

我早就料到了。然而,当我试图将输出转换为int(或其他任何形式)时,编译器(eclipsemars)告诉我,它无法从ProcessBuilder转换为[insert any variable type of your choice here]

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

如何在Java中从ProcessBuilder获取int输出

你没有。您可以从
过程中获得它

这里什么都不见了。您甚至还没有执行该流程,更不用说做任何关于获取其返回值的合理操作了

您需要:

  • 创建并启动
    过程
  • 关闭其输入流并使用其两个输出流。在这种特殊情况下,没有输入或输出,所以这不重要,但在一般情况下,有
  • 获取
    进程。exitValue()

  • 呃,那是ProcessBuilder吗?然后你可以钩住这个过程的..我想这会是你提问的更好的起点所以你期望得到的结果,但是你认为你可以把它转换成int?这太令人惊讶了……这里没有人读过问题中的代码吗?从
    main()
    返回值,而不是通过
    stdout
    stderr
    输出。因此,它可用作退出代码。阅读问题!!!嗯。创建process builder和实际执行它是两个独立的操作。我不会投你反对票,但在发布此类问题之前,请尝试继续学习流程执行是如何工作的。
    java.lang.ProcessBuilder@1db9742