Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过绕过console.readPassword()的eclipse错误来屏蔽EclipseIDEJava中的pasword_Java_Eclipse_Console_Passwords_Masking - Fatal编程技术网

通过绕过console.readPassword()的eclipse错误来屏蔽EclipseIDEJava中的pasword

通过绕过console.readPassword()的eclipse错误来屏蔽EclipseIDEJava中的pasword,java,eclipse,console,passwords,masking,Java,Eclipse,Console,Passwords,Masking,当我键入我的用户输入密码时,我试图屏蔽密码。密码必须是隐藏的或*。我使用这个readPassowrd方法,它有一些问题,比如在IDE中执行任务时出现空指针错误,但在命令行中没有问题。 是否有任何方法,我可以屏蔽密码在IDE只 这就是我下面的内容 char[] PASSWORD =console.readPassword("ENTER YOUR PASSWORD :"); log.info("Entered" + PASSWORD); 但是我在IDE控制台

当我键入我的用户输入密码时,我试图屏蔽密码。密码必须是隐藏的或*。我使用这个readPassowrd方法,它有一些问题,比如在IDE中执行任务时出现空指针错误,但在命令行中没有问题。 是否有任何方法,我可以屏蔽密码在IDE只

这就是我下面的内容

char[] PASSWORD =console.readPassword("ENTER YOUR PASSWORD :");
log.info("Entered" + PASSWORD);
但是我在IDE控制台的线程“main”java.lang.NullPointerException中得到了
异常


有什么帮助吗?

众所周知,
java.io.Console
实际上并不总是可用的,但它取决于运行时环境的实现。
通常,很难找到提供Console类实例的IDE,这就是为什么会出现
NullPointerException
,这仅仅是因为当您使用IDE的“Run”命令启动应用程序时,
System.Console()
方法返回
null

恐怕这不是Eclipse的问题,但IntelliJ和许多其他IDE也会出现这种情况。

就个人而言,如果我需要使用
控制台
,我通常会通过终端启动应用程序,因为通过
java
命令启动的JVM总是返回
java.io.Console
的非空实例,所以您也可以测试
readPassword
方法。
通过右键单击应用程序的输出文件夹,然后选择菜单“Show in->terminal”,可以在Eclipse中启动终端,然后可以启动经典的“java”命令(希望您了解它的工作原理):

>java-cp。
您可以尝试以下方法:

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();      
}

如前所述

哪个Eclipse bug?@chrylis小心Optimistic-线程“main”java.lang.NullPointerException中的异常当您使用readPassword()运行程序时这不是一个Eclipse bug。ok@chrylis cautiouslyoptimistic是否有解决方法?我知道它可以从终端开始工作。很幸运,IDE作为Eclipse的控制台根本不存在,也没有解决方法,我甚至不知道是否存在构建控制台实例的插件。事实上,您也可以看到,在Eclipse基金会论坛上打开了许多与主题相关的线程,答案总是相同的。恐怕您只能选择终端:(这不起作用,在控制台中没有打印出来,这是在cmd中完成的,而不是在IDE中
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();      
}