如何从控制台输入屏蔽密码?我用的是Java6。
我试过用 console.readPassword()
,但这行不通。一个完整的例子也许对我有帮助。
这是我的密码:
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args)
{
Console console = System.console();
console.printf("Please enter your username: ");
String username = console.readLine();
console.printf(username + "\n");
console.printf("Please enter your password: ");
char[] passwordChars = console.readPassword();
String passwordString = new String(passwordChars);
console.printf(passwordString + "\n");
}
}
我得到一个nullpointerexception。。。
5条答案
按热度按时间sgtfey8w1#
如果要处理java字符数组(例如从控制台读取的密码字符),可以使用以下ruby代码将其转换为jruby字符串:
另见“https://stackoverflow.com/a/27628738/4390019“和”https://stackoverflow.com/a/27628756/4390019"
rqcrx0a62#
一个完整的例子?。运行以下代码:(注意:这个示例最好在控制台中运行,而不是从ide中运行,因为在这种情况下system.console()方法可能返回null。)
yvgpqqbh3#
您将使用console类
通过执行readpassword,将禁用回显。此外,在验证密码后,最好覆盖数组中的任何值。
如果您从ide运行它,它将失败,请参阅下面的解释以获得完整的答案:explained
643ylb084#
uidvcgyl5#
如果我们从控制台运行,给定的代码将非常好地工作。类中没有包名称
你必须确定你的“.class”文件在哪里。因为,如果为类指定了包名,则必须确保将“.class”文件保存在指定的文件夹中。例如,我的包名是“src.main.code”,我必须创建一个代码文件夹,在主文件夹中,在src文件夹中,并将test.class放在代码文件夹中。然后它就会完美地工作。