微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java的Scanner类:在Bash中使用左右按钮

我对Linux / Bash不太熟悉,因此我找不到真正要搜索的术语.

摘录:

public class Main {
    public static void main(String[] args) {
        java.util.Scanner keyboard = new java.util.Scanner(system.in);
        while(true) {
            System.out.print("$");
            String in = keyboard.nextLine();
            if(in.equals("q")) break;
            System.out.println("    "+in);
        }
    }
}

如果我使用Bash在Linux机器上运行它,则不能使用任何箭头按钮(我只对左右按钮感兴趣,btw).例如,如果我键入“ test”,然后尝试通过按向左按钮返回,则^ [[D出现,而不是我的光标返回一个位置:

$test^[[D  

我也尝试过较新的Console类,但最终结果是相同的.在Windows的cmd.exe shell上,我没有这个问题.

因此,问题是:有没有一种方法可以更改Java代码,以便我可以使用箭头键而无需Bash以类似^ [[D的顺序转换它们,但实际上是移动光标?

我希望我可以在“编程级别”上解决此问题.如果这不可能,那么我想我最好在Superuser上试试运气,看看是否需要在Bash控制台上进行更改.

提前致谢.

解决方法:

Bash是外壳,而不是终端;从您的程序正在与终端通信.为了提供该功能,bash和许多其他程序都使用readline-它似乎有一个Java wrapper,但我从未使用过.我敢肯定,会有其他人给出更明确的答案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐