5

一部の Java ライブラリには、java.io.Consoleのような機能を提供するユーティリティ クラスがありますが、入力の Bash パイプ リダイレクトと互換性がありますか?

次のコード:

import java.io.Console;
public class Foo {
  public static void main(String args[]) {
    Console cons = System.console();
    String foo = cons.readLine(); // line-5
  }
}

次の操作を行うと、5 行目に NPE がスローされます。

echo "test" | java Foo

これは、 System.inの使用を保存する代替手段を提供せずに、この SO ディスカッションでも言及されています。

4

1 に答える 1

3

次のことを試してください。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Foo {
    public static void main(String args[]) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String foo = in.readLine(); // line-5
        System.out.println(foo);
    }
}

パスワード関連の機能は手動で行う必要があります。

于 2013-01-31T13:40:47.617 に答える