为什么在Eclipse下使用System.console().readLine()获取控制台输入时提示java.lang.NullPointerException
public class Test{
public static void main(String args[]){
while(true){
String str=System.console().readLine();
System.out.println(str);
}
}
}
------解决方案--------------------
楼主,我调试了一下
Console console=System.console();
这个console对象是null,所以空指针了
------解决方案--------------------
public static Console console()
返回与当前 Java 虚拟机关联的唯一 Console 对象(如果有)。
返回:
系统控制台(如果有),否则返回 null。
------解决方案--------------------
以javaw所执行的应用程式(eclipse)没有主控制台(console),所以取不到console物件,System.console()只能是null了。
javaw.exe 跟java命令相对的,运行java命令时,会出现并保持一个console窗口,
程序中的信息可以通过System.out在console内输出,而运行javaw,
开始时会出现console,当主程序调用之后,console就会消失
刚试了下,直接在命令窗口通过javac 编译后,java 执行这个console是没问题的
------解决方案--------------------
eclipse运行时用的是javaw,没有控制台,在命令行中用java.exe 运行就没问题了
如果需要经常这么用就配置一个外部工具