通过绕过console.readPassword()的eclipse错误来屏蔽EclipseIDEJava中的pasword
当我键入我的用户输入密码时,我试图屏蔽密码。密码必须是隐藏的或*。我使用这个readPassowrd方法,它有一些问题,比如在IDE中执行任务时出现空指针错误,但在命令行中没有问题。 是否有任何方法,我可以屏蔽密码在IDE只 这就是我下面的内容通过绕过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控制台
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();
}