[英]Java's Scanner class: using left- and right buttons with 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機器上運行它,我不能使用任何箭頭按鈕(我只對感興趣的left
-和right
按鈕,順便說一句)。 例如,如果我輸入“test”然后按左按鈕嘗試返回,則^[[D
出現而不是我的光標返回到一個位置:
$ test^[[D
我也嘗試過較新的Console類,但最終結果是一樣的。 在Windows的cmd.exe
shell上,我沒有這個問題。
所以,問題是:有沒有辦法改變我的Java代碼,以便我可以使用箭頭鍵而不用Bash將它們轉換為^[[D
但實際上移動光標而不是?
我希望我能在“編程水平”上解決這個問題。 如果這是不可能的,那么我想我最好試試超級用戶的運氣,看看我的Bash控制台上是否需要更改。
提前致謝。
Bash是shell,而不是終端; 從您的程序中,您正在與終端通話。 為了提供該功能,bash和許多其他程序使用readline - 似乎有一個Java包裝器 ,但我從來沒有使用它。 我相信其他人會得到一個更確定的答案。
另一種選擇是Java curses庫 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.