Я хотел создать что-то вроде пульта дистанционного управления для командной строки в Windows.Получение выходного потока «cmd.exe» в Java
Для этого я использую сканер, но ...
Проблема заключается в том, когда я прочитал всю строку с nextLine() из потока, запрос будет отсутствовать (becouse будет напечатан, но не в строке) - и когда я прочитаю следующее слово со следующим(), разрыв строки отсутствует, и вы потеряете обзор. Однако некоторая информация даже отсутствует.
package com;
import java.io.IOException;
import java.util.Scanner;
public class StdinCmd extends Thread {
public void run() {
try {
execute();
} catch (IOException e) {
e.printStackTrace();
}
}
public void execute() throws IOException {
Scanner reader = new Scanner(MainClient.getProcess().getInputStream()); // <- getting the stream
StdoutSocket stdoutSocket = new StdoutSocket();
while (true) {
while (reader.hasNext()) {
stdoutSocket.executeNext(reader.next()); // <- send it to the socket (the controller). This is what will be displayed at the end.
}
}
}
}
Я приложил скриншот того, как он должен выглядеть, и как она выглядит в конце:
http://www.mediafire.com/?jma31ezg8ansfal
Я надеюсь, что вы можете помочь мне, и я дал вам достаточно информации!
возможно дубликат [Перенаправление ввода/вывода/Ошибка Потоков Процесса CMD.exe Полностью с Java] (http://stackoverflow.com/questions/4301270/redirecting-input- output-error-streams-of-a-cmd-exe-process-full-with-java) –