Java System.console()返回null
我曾经使用readLineof BufferedReader
来获取用户的输入/新密码,但想屏蔽该密码,所以我尝试使用java.io.Consoleclass
。问题是在Eclipse中调试应用程序时System.console()
返回null
。我是Java和``Eclipse
的新手,不确定这是否是最好的方法吗?我右键单击源文件,然后选择“调试为”>“ Java
应用程序”。有什么解决方法吗?
回答:
此代码段应该可以解决问题:
private String readLine(String format, Object... args) throws IOException { if (System.console() != null) {
return System.console().readLine(format, args);
}
System.out.print(String.format(format, args));
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
return reader.readLine();
}
private char[] readPassword(String format, Object... args)
throws IOException {
if (System.console() != null)
return System.console().readPassword(format, args);
return this.readLine(format, args).toCharArray();
}
在Eclipse中进行测试时,你的密码输入将清晰显示。至少,你将能够进行测试。只是在测试时不要输入你的真实密码。保留供生产使用
以上是 Java System.console()返回null 的全部内容, 来源链接: utcz.com/qa/427726.html