У меня есть простое приложение javaFX, использующее файлы fxml с SceneBuilder.Сейчас я пытаюсь запустить процесс notepad++
из Java, а затем перенаправить ввод с клавиатуры из текущего активного представления в процесс notepad++
.
В основном я бы косвенно писал из своего приложения javaFX в notepadd++
Вот мой код, который до сих пор пробовал с BufferedWriter:
ProcessBuilder pb = new ProcessBuilder("notepad++.exe");
Process p = pb.start();
InputStream stdin= p.getOutputStream();
BufferedWriter keyboardInput_writer = new BufferedWriter(new OuputStreamWriter(stdin));
Scanner sc = new Scanner(System.in);
while (true) {
if (sc.hasNext()) {
try {
keyboardInput.write(sc.nextLine());
} catch (IOException e) {
System.out.println("Error while capturing keyboard bytes stream.");
e.printStackTrace();
}
}
}
notepad ++ открывается хорошо, но когдаЯ возвращаюсь в активное окно javaFX и пытаюсь ввести некоторые клавиши клавиатуры, когда процесс останавливается.Я полагаю, мне следует перенаправлять ключи в виде байтов, а не текста, но какие классы следует использовать для перенаправления клавиш клавиатуры на объект процесса Java?
РЕДАКТИРОВАТЬ: Что я действительно хочу знать, так этоесли возможно отправлять данные о событиях клавиатуры (например, целые числа KeyCode) в подпроцесс java (например, notepad ++) с помощью подпроцесса stdin.
Если да, то какие библиотеки Java следует использовать?