java - 在同一个终端执行 'stty raw' 命令?

标签 java unix console terminal

我正在尝试将控制台置于 Java 中的“原始”模式。我知道这只适用于 UNIX。

我正在使用命令 stty raw

如果我直接在终端中输入命令,它就会执行它应该执行的操作。在 Java 中,我尝试这样设置模式:

Runtime.getRuntime().exec("stty raw");

但终端不会进入原始模式。

我有一种感觉,这是因为 Java 只是在后台或其他虚拟终端中执行命令,而不是在 Activity 终端中执行命令。有办法做到这一点吗?

最佳答案

由于 JVM 重定向 stdio/stdout/stderr,您可以尝试这样的操作:

String[] cmd = {"/bin/sh", "-c", "stty raw </dev/tty"};
Runtime.getRuntime().exec(cmd);

请注意,stty(通常)在 stdin 而不是 stdout 上运行。

关于java - 在同一个终端执行 'stty raw' 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531791/

相关文章:

windows - 如何在 Windows 上执行类似 "sed -"的操作?

c - pty 和 tty 是什么意思?

Java:如何编写泛型方法?

java - 创建我的角色的实例

bash - 如何将目录更改为刚刚在 bash 中将文件移动到的位置?

python - MINGW64 在执行期间不打印

linux - 如果我使用串行端口控制台登录 linux,它使用的是 terminfo 还是 termcap?

c++ - 从应用程序打开控制台

java - 当我在 arrayList 中使用 .get() 方法打印对象时,如何防止打印哈希码?

java - 数据流中的动态目标问题