BufferedReader пуст, и поэтому вы не можете ничего читать в то время как -l oop. В конце StringBuilder является пустым объектом, и результирующая строка не имеет значения.
Вот пример того, как вы можете прочитать Вывод из одной банки в другую Java Программа:
Первая программа: мой java .jar
public static void main(String[] args) {
System.out.println("Hello World");
}
И затем код Java, который читает вывод из моего java .jar:
public static void main(String[] args) throws IOException, InterruptedException {
String token = "t";
String Id = "x";
runTest(Id, token);
}
public static void runTest(String Id, String token) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "./myjava.jar", Id, token);
pb.redirectErrorStream(true);
pb.redirectOutput(ProcessBuilder.Redirect.PIPE);
Process proc = pb.start();
System.out.println("Job running");
StringBuilder builder = new StringBuilder();
try(InputStream in = proc.getInputStream();
Scanner scanner = new Scanner(in)) {
while(scanner.hasNext()) {
builder.append(scanner.next());
}
} catch (Exception e) {
e.printStackTrace();
}
String result = builder.toString();
proc.waitFor();
System.out.println("Job finished");
System.out.println("Output:\n" + result);
}