【发布时间】:2016-09-10 04:50:22
【问题描述】:
我刚开始学习一些 Java,并编写了这个简单的程序,但我不知道我的代码有什么问题。
这是我运行时看到的错误:
线程“main”中的异常 java.lang.NullPointerException 在 treehousejava.Main.main(Main.java:9)
这是我的代码:
package treehousejava;
import java.io.Console;
public class Main {
@SuppressWarnings("unused")
public static void main (String[] args){
Console console = System.console();
String q = console.readLine("Hi there! what's your name? ");
console.printf("hi there %s ! my name is console! ");
}
}
【问题讨论】:
-
System.console的 javadoc 说可能没有,在这种情况下它将返回null。有充分的理由尝试使用控制台吗?如果没有,我会使用System.out.println输出,Scanner上System.in输入。 -
@Unknown 这与这里无关。很清楚哪个变量为空,在这种情况下,问题是 为什么,而您建议的副本没有回答这个问题(尽管很容易回答,如 cmets 和答案所示)跨度>
-
事实上,在Eclipse(我使用的IDE)中运行这样的程序会导致NPE,因为没有
Console。不过,在命令行上运行会起作用。解决方案是不使用它。看看亚当的回答。 -
console.printf("hi there %s ! my name is console! ");行中,%s是字符串的占位符,但没有提供字符串。我怀疑你想使用console.printf("hi there %s ! my name is console! ", q);。
标签: java compiler-errors ide