Java';s Scanner类:在Bash中使用左键和右键
我对Linux/Bash不太熟悉,所以我真的找不到合适的术语来搜索 以片段为例:Java';s Scanner类:在Bash中使用左键和右键,java,bash,command-line,Java,Bash,Command Line,我对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("$ "); Str
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机器上运行它,我就不能使用任何箭头按钮(顺便说一句,我只对左
-和右
按钮感兴趣)。例如,如果我键入“test”,然后尝试按左键返回,则会出现^[[D
而不是我的光标返回一个位置:
$ test^[[D
我也尝试过更新的类,但最终结果是一样的。在Windows的cmd.exe
shell上,我没有这个问题
所以,问题是:有没有一种方法可以改变我的Java代码,这样我就可以使用箭头键,而不用Bash将它们按顺序转换,比如^[[D
,但实际上可以移动光标
我希望我能在“编程级别”上解决这个问题。如果这不可能,那么我想我最好试试我的运气,看看我的Bash控制台上是否有需要更改的内容
提前感谢。Bash是外壳,而不是终端;从您的程序中,您正在与终端进行对话。为了提供该功能,Bash和许多其他程序使用readline-似乎有一个for,但我从未使用过它。我相信其他人会提供更明确的答案。另一个选项是 啊,我明白了。谢谢Jefromi提供的信息!我将研究Java Readline库。Tanks Dennis。在谷歌搜索“Java”和“Readline”时,我发现了一个看起来适合我需要的库:jline,它看起来与您建议的库相似。