A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨震 中级黑马   /  2012-8-10 21:22  /  1390 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨震 于 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>
复制代码

3 个回复

倒序浏览
你这是Eclipse等工具中运行吧?换成到CMD中javac编译、java执行就能够正常了。
Eclipse中的控制台跟操作系统的控制台不一样。
所以,实际上你获取到的是System.console是null。所以在con.readLine()的时候会出现空指针异常。
回复 使用道具 举报
是这样的啊,我试下命令行
回复 使用道具 举报
谢谢,你解释是正确的,我在命令行下试可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马