ar.readLine无法读取用户的输入吗?

时间:2019-02-05 08:13:13

标签: java io console

摘要 1.我正在导入java.io.console,我的代码没有收到任何错误,     我认为代码是正确的,在Eclipse中出现了一些错误     软件...错误:

Exception in thread "main" java.lang.NullPointerException   at
loops.Escapey.main(Escapey.java:9)

编码:

package loops;

import java.io.Console;
public class Escapey {
public static void main(String[] args) {

    Console ar = System.console(); // creating a new object for console

    String name = ar.readLine("how old are you ?"); //reads a user input 
    System.out.printf("%s - pretty age",name);
}
}

输出:  -除了输出,我几岁了? 18 18-漂亮的年龄    但是实际输出出现错误...线程“ main”中的异常    java.lang.NullPointerException在loops.Escapey.main(Escapey.java:9)

2 个答案:

答案 0 :(得分:0)

我假设您正在将此程序运行到某些IDE中。由于System.console返回附加的控制台,因此,如果将其运行到IDE中,它将返回NULL。更好的方法是使用Scanner类。如果您确实要使用System.console,则必须在某些控制台上对其进行测试。如果在Mac上,请运行终端。在Linux上,任何终端应用程序都可以使用。

答案 1 :(得分:0)

如果我们在IDE(Intellij)中运行它,则会引发空指针异常。由于这与控制台有关,因此我尝试在命令行中执行此操作,并且效果很好。

在终端或命令行中执行这些步骤,它将起作用

1) javac Escapey.java
2) java Escapey
相关问题