Java Process API-将选项卡键按事件发送到Interactive Shell程序



我有一个交互式命令行程序,在按下选项卡键时具有选项卡的完成功能(完成命令或列表可能的选项)。

我正在编写另一个Java程序,该程序将使用ProcessBuilder启动命令行程序。

我能够使用Process.getInputStream()Process.getOutputStream()

将输入传递给该过程

现在,我想在儿童过程中触发自动完成。当我打印税收字符 't'时,它被视为常规标签字符,而不是触发选项卡自动完成。

是否有一种方法可以将键按键或同等事件从Java过程发送到子进程?

您可以尝试使用机器人

Robot robot = new Robot();
robot.mouseMove(x, y); //Select the console window at x,y
robot.keyPress(KeyEvent.VK_TAB); //Send tab key  

或运行特定OS的命令,例如使用X11

的UNIX的Xdotool
xdotool windowactivate id &&
xdotool key Tab &&