Хорошо, я пробовал дюжину разных способов, но безуспешно.Я хочу выполнить пользовательский исполняемый файл и получить вывод.Он работает нормально из командной строки.Я получаю "dir", чтобы работать нормально, но не custom.exe.Вот код:
List<String> command = new ArrayList<String>();
command.add("cmd"); // Even removed these two lines
command.add("/c"); // aka hail mary coding.
//command.add("dir");
command.add("custom.exe"); // even tried "c://custom.exe"
String line;
Process p = new ProcessBuilder(command).start();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
Я не получаю вывод вообще.Если я помещаю его в командный файл, я получаю вывод.У меня такое ощущение, что это как-то связано с% PATH%.Вернемся к этому ...
РЕДАКТИРОВАТЬ -> Получается, что вывод этого пользовательского exe-файла идет с ошибкой, поэтому, чтобы увидеть, что происходит, у меня есть код:
List<String> command = new ArrayList<String>();
command.add(System.getenv("ProgramFiles(x86)") + "\\mydir\\custom.exe";
String line;
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
И это работает как черт.:)