微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过绕过console.readPassword()

如何解决通过绕过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 举报,一经查实,本站将立刻删除。