控制台输入错误java.lang.NullPointerException

时间:2013-01-21 13:00:47

标签: java io

我尝试过代码:

import java.io.Console;
public class Default
{
    public static void main(String args[]) throws IOException
    {
        Console console = System.console();
        String testing = console.readLine("Enter Name: ");
        System.out.println("Entered Name: "+ testing);
    }
}

转到异常并出现以下错误:
Source not found. NullPointerException

我正在使用Eclipse Juno EE进行调试..!

以上编写代码的参考链接为here

4 个答案:

答案 0 :(得分:4)

当您从IDE运行程序时,console.readLine返回null时是否正在运行您的程序。

For more details refer to this

如果从命令行运行它,则不会出现此错误。

答案 1 :(得分:3)

如果没有控制台,

System.console()将返回null。

您可以通过adding a layer of indirection to your code或在外部控制台中运行代码attaching a remote debugger来解决此问题。

答案 2 :(得分:3)

那是因为,IDE没有使用控制台!

转到cmd.exe

输入cd <bin path>点击输入..

现在输入java <classname>按Enter

有效!

答案 3 :(得分:0)

import java.io.*;

public class ConsoleExTest {

    public static void main(String[] args) throws Exception {
        Console c = System.console();
        String uname = c.readLine("User Name:");
        char[] pwd = c.readPassword("Password:");
        String upwd = new String(pwd);
        if (uname.equals("chenna") && upwd.equals("chenna")) {
            System.out.println("User is valid");
        } else {
            System.out.println("User is not valid");
        }
    }

}

注意:

System.console();返回null,所以我们会得到