首页 > 其他 > 详细

System.console().readPassword()空指针异常

时间:2021-08-30 10:13:22      阅读:26      评论:0      收藏:0      [点我收藏+]

System.console().readPassword()在idea中运行出现空指针异常

Console cons = System.console();
char[] chars = cons.readPassword();
String s=new String(chars);
System.out.println(s);

在 Idea 编译运行出现 java.lang.NullPointerException 错误. 经测试,原因是 cons 为 null.
至于 System.console() 为何返回 null,经查阅资料得知:
java.io.Console 是java 6 引入专用来访问基于字符的控制台设备。

Java 要与Console进行交互,不总是能得到可用的Java Console类的。一个JVM是否有可用的Console,依赖于底层平台和JVM如何被调用。如果JVM是在交互式命令行(比如Windows的 cmd,linux/unix的 terminal)中启动的,并且输入输出没有重定向到另外的地方,才可得到一个可用的Console实例。

因而建议:

  1. 在使用 Console cons = System.console() 返回的实例调用方法前,应对实例 cons 进行是否为 null 的判断,再执行其他流程。
  2. 如果你的Java程序要与Windows下的cmd或者Linux / unix 下的Terminal交互,就可以用这个Java Console类代劳。因这类交互式命令行中启动应用程序使其返回可用的 Console 实例。

最后再提醒一次

Java.io.Console 只能用在标准输入、输出流未被重定向的原始控制台中使用,在 Eclipse / Idea 或者其他 IDE 的控制台是不可用的。

————————————————
版权声明:本文为CSDN博主「RiskAI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jhsword/article/details/108564052

System.console().readPassword()空指针异常

原文:https://www.cnblogs.com/nwl517/p/15202778.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!