ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-08-29 16:00:51  阅读:231  来源: 互联网

标签:cons Console readPassword System console 实例 Java


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

标签:cons,Console,readPassword,System,console,实例,Java
来源: https://www.cnblogs.com/nwl517/p/15202778.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有