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

1szpjjfi  于 2023-03-21  发布在  Java
关注(0)|答案(5)|浏览(159)

我试过代码:

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

kwvwclae

kwvwclae1#

您是否从IDE运行程序,因为从IDE使用时,console.readLine返回null
For more details refer to this
如果你从命令行运行它,你不会得到这个错误。

oknrviil

oknrviil2#

System.console()如果没有控制台,则返回null。
您可以通过adding a layer of indirection to your code或在外部控制台和attaching a remote debugger中运行代码来解决这个问题。

vojdkbi0

vojdkbi03#

这是因为IDE没有使用控制台!
转到cmd.exe
输入cd <bin path>点击回车..
现在键入java <classname>点击回车
真管用!

dbf7pr2w

dbf7pr2w4#

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,因此我们将得到

velaa5lx

velaa5lx5#

这个问题的原因在其他答复中已经提到,但我想补充一个可能的解决办法。
有一个库可以用作java.io.Console的替代品,可以缓解这个问题:https://codeberg.org/marc.nause/console-with-fallback

相关问题