当前位置: 代码迷 >> Eclipse >> System.console().readLine(),该怎么处理
  详细解决方案

System.console().readLine(),该怎么处理

热度:653   发布时间:2016-04-23 00:52:19.0
System.console().readLine()
为什么在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 运行就没问题了
如果需要经常这么用就配置一个外部工具
  相关解决方案