黑马程序员技术交流社区

标题: 关于Console对象readline方法的问题(已解决) [打印本页]

作者: 杨震    时间: 2012-8-10 21:22
标题: 关于Console对象readline方法的问题(已解决)
本帖最后由 杨震 于 2012-8-11 21:47 编辑
  1. <p>
  2. package com.taobao.szyangzhen;
  3. import java.io.Console;</p><p>public class InputTest {</p><p> /**
  4.   * @param args
  5.   */
  6. public static void main(String[] args) throws NullPointerException {
  7.   
  8.   Console con = System.console();
  9.   
  10.   System.out.println("what is your name?");
  11.   String name = con.readLine();
  12.   
  13.   System.out.println("what is your age?");
  14.   String passwd = new String(con.readPassword());
  15.   
  16.   System.out.println("name:" + name + "-----" + "passwd:" + passwd);
  17.   
  18. }


  19. 为什么总是报错啊,下面是输出(14行是这行代码: String name = con.readLine();)

  20. what is your name?
  21. Exception in thread "main" java.lang.NullPointerException
  22. at com.taobao.szyangzhen.InputTest.main(InputTest.java:14)


  23. </p><p>}</p>
复制代码

作者: 朱志辉    时间: 2012-8-10 22:31
你这是Eclipse等工具中运行吧?换成到CMD中javac编译、java执行就能够正常了。
Eclipse中的控制台跟操作系统的控制台不一样。
所以,实际上你获取到的是System.console是null。所以在con.readLine()的时候会出现空指针异常。
作者: 杨震    时间: 2012-8-10 22:38
是这样的啊,我试下命令行
作者: 杨震    时间: 2012-8-11 19:54
谢谢,你解释是正确的,我在命令行下试可以的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2