【问题标题】:Execute 'stty raw' command in same terminal?在同一终端中执行“stty raw”命令?
【发布时间】:2011-05-30 17:29:02
【问题描述】:

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

我正在使用命令stty raw

如果我直接在终端中输入命令,它会做它应该做的事情。在 Java 中,我尝试这样设置模式:

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

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

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

【问题讨论】:

    标签: java unix console terminal


    【解决方案1】:

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

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

    请注意,stty(通常)在标准输入而不是标准输出上运行。

    【讨论】:

    • 有机会在 Windows 上执行此操作吗?这个&lt;/dev/tty 重定向? ://
    猜你喜欢
    • 2016-12-12
    • 2015-05-27
    • 2016-12-06
    • 2014-07-03
    • 1970-01-01
    • 2014-12-15
    • 2022-01-06
    • 2016-04-05
    相关资源
    最近更新 更多