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

Mat*_*att 3 java unix terminal console

我正试图在Java中将控制台置于"原始"模式.我知道这只适用于UNIX.

我正在使用该命令 stty raw

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

Runtime.getRuntime().exec("stty raw");
Run Code Online (Sandbox Code Playgroud)

但是终端没有进入原始模式.

我有一种感觉,这是因为Java只是在后台的虚拟终端中执行命令,而不是活动终端.有没有办法做到这一点?

Ric*_*key 5

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

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

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