Mar 21, 2006

[Mustang] Console にチャレンジ

Mustang では Console というクラスが新設された。 Console はその名の通りコンソールへのアクセスを提供してくれるクラス。 ちなみに、コンソール用なので Eclipse 上では使えない模様(System.console() が null を返す)。

Class Console
http://download.java.net/jdk6/docs/api/java/io/Console.html

サンプルコード

package jp.in_vitro.codelets.lang;

import java.io.Console;
import java.io.PrintWriter;

public class Codelet {

    public Codelet() {
        super();
    }

    public static void main(String[] args) {
        Codelet me = new Codelet();
        me.execute();
    }

    protected void execute() {
        Console console = System.console();
        PrintWriter writer = console.writer();

        writer.print("name:");
        writer.flush();
        String name = console.readLine();
        writer.println("your name is " + name);
        writer.flush();

        writer.print("password:");
        writer.flush();
        char[] password = console.readPassword();
        writer.println("your password is " + new String(password));
        writer.flush();
    }
}

実行結果

> java -version
java version "1.6.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59g)
Java HotSpot(TM) Client VM (build 1.6.0-beta-b59g, mixed mode, sharing)

> java -classpath classes jp.in_vitro.codelets.lang.Codelet
name:in-vitro.jp
your name is in-vitro.jp
password:     ←[ここでパスワードを入力しているがエコーバックされない]
your password is hogehoge

>