#navi_header|Java| コマンドラインツールで、プロンプトを表示してユーザからの入力を読み取りたいときに。 JDK1.5まで:System.inから読み取る方式。 #code|java|> BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("prompot:>"); String input = br.readLine().trim(); System.out.println("Input = [" + input + "]"); ||< JDK1.6から:標準入力がコマンドプロンプトやターミナルであれば、System.console()が返すjava.io.Consoleクラスのインスタンスでプロンプト表示+一行入力読み取りのショートカットが提供されてる。 #code|java|> Console console = System.console(); if (null == console) { System.out .println("'System.console()' returns null, Console is disabled."); } else { console.printf("Console Output Example %s%n", "abcdefg"); String input = console.readLine("[%s %s]>", "abc", "def"); console.printf("Input = [%s]%n", input); char[] password = console.readPassword("input dummy password>"); console.printf("Input Password = [%s]%n", new String(password)); } ||< 注意点: - 実行環境によっては "System.console()" がnullを返す場合があるので、必ずnullチェックは必要。 -- 例:Eclipseから実行して、Eclipseの「コンソール」("Console")ウインドウ上で操作した場合、System.console()はnullを返してました。(Eclipse 4.2 Juno SR2) サンプル(JDK 1.7で確認): - https://github.com/msakamoto-sf/javasnack/blob/master/src/main/java/javasnack/snacks/ReadConsoleInput.java 参考資料: - Java技術最前線 - 「Java SE 6完全攻略」第37回 コンソールからパスワードを入力するには:ITpro -- http://itpro.nikkeibp.co.jp/article/COLUMN/20070710/277111/ - Java SE 6 じゃじゃ馬ならし Console -- http://www.javainthebox.net/laboratory/JavaSE6/console/console.html #navi_footer|Java|