簡體   English   中英

Java的Scanner類:使用左鍵和右鍵與Bash

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM