Eclipse中的NullPointerException但不在命令提示符下

时间:2013-10-18 14:26:12

标签: java eclipse nullpointerexception command-prompt

我是初学者。只是想知道为什么这段代码在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);
    }
}

3 个答案:

答案 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);