2011年7月13日 星期三

Java 文字終端機 - 密碼輸入 (會出現 *)

Java 對於文字終端機的支援是非常貧乏,  例如 : 密碼輸入螢幕上只出現 '*', 這樣的功能, JDK 並沒有支援, 如需這樣的功能, 你必須使用第三方套件來完成.

在此為你介紹 Jline 這套件, 如何完成 密碼輸入螢幕上只會出現 '*',
實作步驟如下 :

1. 下載 JLine 套件
http://sourceforge.net/projects/jline/files/

2. 撰寫程式
import jline.*;
import java.io.*;

public class PasswordReader {

    public static void main(String[] args) throws IOException {
        ConsoleReader reader = new ConsoleReader();

        String line = null;
        do {
            line = reader.readLine("enter password> ", '*');
            System.out.println("Got password: " + line);
        } while(line != null && line.length() > 0);
    }
}

3.編譯程式
> javac -cp jline-1.0.jar PasswordReader

4. 執行程式
> java -cp .;jline-1.0.jar PasswordReader
enter password> **********
Got password: qqqqqqqqqq
enter password>
Got password:

JLine 官方網址 : http://jline.sourceforge.net/

3 Response to Java 文字終端機 - 密碼輸入 (會出現 *)

2011年7月14日 凌晨2:55

程式編譯沒有問題
但是執行時會出現執行錯誤

2011年7月14日 晚上10:01

http://www.hotimg.com/image/aJ5NyGt
錯誤訊息的圖片

2011年7月15日 凌晨2:42

抱歉執行命令打錯, 正確命令如下 :
java -cp .;jline-1.0.jar PasswordReader

張貼留言