在我的Java程序中导致这个NullPointerException的原因是什么?

Jos*_*son 2 java

import java.io.*;
public class listjava
{
   public static void main(String args[]){
       Console c = System.console();
       char[] pw;
       pw = c.readPassword("%s","pw: ");
       for (char ch: pw)
           c.format("%c ",ch);
       c.format("\n");

       MyUtility mu = new MyUtility();
       while(true)
       {
           String name = c.readLine("%s","input?: ");
           c.format("output : %s \n",mu.doStuff(name));
       }
    }
}

class MyUtility{
    String doStuff (String arg1){
        return " result is " + arg1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误:

Exception in thread "main" java.lang.NullPointerException
   at listjava.main(listjava.java:7)
Run Code Online (Sandbox Code Playgroud)

为什么我的程序错了?

Pab*_*ruz 7

System.console() 返回null.

引用Java的文档:

返回与当前Java虚拟机关联的唯一Console对象(如果有).

因此,可能没有与您的JVM关联的控制台.您可能正在Eclipse或其他IDE中运行您的程序.尝试从系统的命令行运行程序.它应该工作.

从命令行运行程序.

  1. 转到listjava.class驻留的目录
  2. 运行java的解释器

    $ java listjava