回答
如果外部进程在其标准输入中寻找Ctrl-I字符(顺便说一句,与Tab相同),GreenGiant的解决方案将起作用。既然这样做不起作用,那么这个过程显然是寻找其控制台上的按键(tty),这是其他程序根本无法访问的。你需要编写本地代码来创建一个虚拟的tty并让这个过程使用它。 JNI是你如何让Java调用本地代码作为Java程序的一部分。
对不起,但这不是我所问的。我需要以编程方式将Ctrl + I发送到Java中的其他CLI进程。 –
啊我看你刚刚更新了这个问题。 –
如果您使用ProcessBuilder
启动其他程序,那么您可能能够通过发送控制序列将适当的字节写入进程的输入流。
我不知道实际的字节序列是什么,你需要发送,但based on what I'm finding,好像按Ctrl + A为1,按Ctrl + B为2,等等
ProcessBuilder pb = new ProcessBuilder("...");
Process process = pb.start();
OutputStream stream = process.getOutputStream();
stream.write('I' - 'A' + 1); // send Ctrl+I
stream.flush();
这看起来很合理,但没有奏效。 –
- 1. jquery模仿按键“ctrl +”
- 2. Ctrl-C如何终止子进程?
- 3. Flex中的终端仿真
- 4. 如何通过documents.ready函数中的javascript自动按下按键(ctrl + shift + i)?
- 5. 执行C程序,直至按Ctrl + C在终端
- 6. 如何在主页按钮被按下时终止进程?
- 7. vim中的Ctrl-W在终端
- 8. 在python中,当我在终端中按Ctrl + C时,如何防止显示“^ C”?
- 9. 如何模仿Android中按下按钮的行为?
- 10. 你如何在UWP中进行模仿?
- 11. Windows的Ssh终端仿真
- 12. Docker未响应终端中的CTRL + C
- 13. 以编程方式模仿ASP.NET中DataGrid中的CTRL + A?
- 14. 在Ctrl-C上终止父进程和子进程
- 15. 如何模仿QML中的按钮
- 16. 如何模仿按住pywin32
- 17. PHP终端仿真器
- 18. 仿真终端服务
- 19. 如何在不同的终端上运行gnome终端子进程
- 20. 模拟mac终端中的键盘按下
- 21. 如何在unix中从终端中分离进程?
- 22. 父进程在C#中终止时如何终止子进程
- 23. 如何在特定的PID下终止Java中的进程
- 24. 按下按钮时,如何让我的应用程序运行终端代码?
- 25. 如何模仿Chrome的Ctrl + F计数器
- 26. 在GTK +应用程序中按下CTRL按钮
- 27. 如何缩进/按Ctrl + Shift + F键
- 28. 什么是Ctrl + Backspace的终端键码
- 29. 如何使用mac终端将ctrl + p映射到vim sshd上的ctrl +空格
- 30. 如何模仿JavaScript的点击按钮?
是的。有可能的。 java键绑定应该做的伎俩。 – andrewdleach
@andrewdleach也许我错过了一些东西,但我不明白这将如何帮助我编程发送Ctrl + I到远程CLI进程。 –
对不起,我在控制台上做了些什么?它是否映射到中断? – ChiefTwoPencils