Mat*_*att 3 java unix terminal console
我正试图在Java中将控制台置于"原始"模式.我知道这只适用于UNIX.
我正在使用该命令 stty raw
如果我直接在终端中输入命令,它会执行它应该执行的操作.在Java中,我尝试设置这样的模式:
Runtime.getRuntime().exec("stty raw");
Run Code Online (Sandbox Code Playgroud)
但是终端没有进入原始模式.
我有一种感觉,这是因为Java只是在后台的虚拟终端中执行命令,而不是活动终端.有没有办法做到这一点?
由于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上运行.