我是初学者。只是想知道为什么这段代码在windows命令提示符下完美运行,但我得到了一个:
Exception in thread "main" java.lang.NullPointerException
at Test1.main(Test1.java:13)
日食中的错误。这对我来说已经发生了很多事,而且它真的阻止我使用eclipse。
以下是代码:
import java.io.Console;
public class Test1 {
public static void main(String[] args) {
Console myConsole = System.console();
for (int a = 0; a < 10; a++){
int a2 = a * a;
myConsole.printf("\n%d squared is: %d.",a,a2); //Problem with this line
}
System.exit(0);
}
}
答案 0 :(得分:4)
System.console()
州的javadoc
返回系统控制台(如果有),否则为null。
Eclipse不得关联系统控制台。
使用System.in
代替,可能使用java.util.Scanner
进行输入。输出System.out
。
答案 1 :(得分:3)
简单地说,System.console()
在Eclipse中返回null
,但在控制台中运行时却没有。这是documented行为:
返回与当前Java虚拟机关联的唯一Console对象(如果有)。
返回:
系统控制台(如果有),否则为null。
为什么不直接使用System.out
?毕竟,您不需要 Console
。
答案 2 :(得分:2)
System#console
可能会返回null
。由于您只是输出到控制台,因此您无需使用Console
。可以使用Formatter
代替:
System.out.printf("\n%d squared is: %d.", a, a2);