Console.readPassword()出错

时间:2015-07-25 08:39:38

标签: java

结果是:错误。我认为控制台为空,我不知道为什么。可以有人帮助我吗?

import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;

public class Vezbanje {   
    public static void main(String[] args) {   
        Console console = System.console();

        if(console != null) {
            console.printf("Please enter your username: ");
            String username = console.readLine();
            console.printf(username + "\n");

            console.printf("Please enter your password: ");
            char[] passwordChars = console.readPassword();
            String passwordString = new String(passwordChars);

            console.printf(passwordString + "\n");
        } else {
            System.out.print("Error");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这是因为没有可用的控制台。

来自,System.console() documentation

  

返回:系统控制台,(如果有),否则为null

只有在有控制台的情况下才会返回控制台。并不总是有一个控制台。

例如:在运行 Eclipse 的代码时,您将找不到控制台,因此调用System.console()将返回 null