У меня есть программа, которая должна открывать другую программу на 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? Если нет, то как я должен? заранее спасибо
Как я могу получить вывод int из ProcessBuilder в Java?
Вы не Вы получаете это от Process
,
Здесь все отсутствует. Вы даже не выполнили этот процесс, не говоря уже о том, чтобы сделать что-нибудь разумное для получения его возвращаемого значения.
Вам нужно:
Process
,Process.exitValue()
,Других решений пока нет …