如何解决通过绕过console.readPassword()
当我输入我的用户输入密码时,我试图屏蔽密码它必须是隐藏的或 *.我使用这个 readPassowrd 方法,它有一些问题,比如在 IDE 中执行任务时出现空指针错误,但对于命令行来说很好。 无论如何我只能在IDE中屏蔽密码。
这是我在下面的内容
char[] PASSWORD =console.readPassword("ENTER YOUR PASSWORD :");
log.info("Entered" + PASSWORD);
但我在 IDE 的控制台中得到 Exception in thread "main" java.lang.NullPointerException
。
有什么帮助吗?
解决方法
众所周知,java.io.Console
实际上并不总是可用,但这取决于您的运行时环境的实现。
通常,很难找到提供 Console 类实例的 IDE,这就是您得到 NullPointerException
的原因,仅仅是因为当您使用 IDE 的“运行”命令启动应用程序时,System.console()
方法返回 { {1}}。
恐怕这不是 Eclipse 的问题,但 IntelliJ 和许多其他 IDE 也会发生这种情况。
就我个人而言,如果我需要使用 null
,我通常会通过终端启动应用程序,因为通过 Console
命令启动的 JVM 总是返回一个非空实例java
,因此您还可以测试 java.io.Console
方法。
您可以通过右键单击应用程序的输出文件夹在 Eclipse 中启动终端,然后选择菜单“显示在 -> 终端”,然后您可以启动经典的“java”命令(希望您知道它是如何工作的):
readPassword
,
你可以试试这个:
Console cnsl = null;
try {
// creates a console object
cnsl = System.console();
// if console is not null
if (cnsl != null) {
// read password into the char array
char[] pwd = cnsl.readPassword("Password: ");
// prints
System.out.println("Password is: "+pwd);
}
} catch(Exception ex) {
// if any error occurs
ex.printStackTrace();
}
正如所描述的那样here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。