Как я могу получить вывод int из ProcessBuilder в Java?

У меня есть программа, которая должна открывать другую программу на 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

Решение

Как я могу получить вывод int из ProcessBuilder в Java?

Вы не Вы получаете это от Process,

Здесь все отсутствует. Вы даже не выполнили этот процесс, не говоря уже о том, чтобы сделать что-нибудь разумное для получения его возвращаемого значения.

Вам нужно:

  1. Создать и запустить Process,
  2. Закройте входной поток и используйте оба выходных потока. В этом конкретном случае нет ввода или вывода, так что это не имеет значения, но в общем случае есть.
  3. Получить Process.exitValue(),
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]