我试图使用Console类来获取用户的输入,但是当我调用时会返回一个null对象System.console().在使用System.console之前,我是否必须更改任何内容?
Console co=System.console();
System.out.println(co);
try{
String s=co.readLine();
}
Run Code Online (Sandbox Code Playgroud) 我使用Eclipse IDE来开发,编译和运行我的Java项目.今天,我正在尝试使用java.io.Console该类来管理输出,更重要的是,用户输入.
问题是当应用程序"通过"Eclipse运行时System.console()返回null.Eclipse在后台进程上运行程序,而不是我们熟悉的控制台窗口的顶级进程.
有没有办法强制Eclipse将程序作为顶级进程运行,或者至少创建一个JVM将识别的控制台?否则,我被迫将项目放在jar上并在Eclipse外部的命令行环境中运行.
我用readLine的BufferedReader获得输入/从用户的新密码,但希望屏蔽密码,所以我试图用java.io.Console类.问题是在Eclipse中调试应用程序时System.console()返回null.我是Java和Eclipse的新手,不确定这是最好的实现方式吗?我右键单击源文件并选择"Debug As">"Java Application".有没有解决方法?
我知道像Git和其他命令行界面能够隐藏用户的输入(对密码很有用).有没有办法在Java中以编程方式执行此操作?我正在从用户那里获取密码输入,我希望他们的输入被"隐藏"在该特定行上(但不是所有这些).这是我的代码(虽然我怀疑它会有所帮助......)
try (Scanner input = new Scanner(System.in)) {
//I'm guessing it'd probably be some property you set on the scanner or System.in right here...
System.out.print("Please input the password for " + name + ": ");
password = input.nextLine();
}
Run Code Online (Sandbox Code Playgroud) java ×4
console ×2
eclipse ×2
command-line ×1
input ×1
java-io ×1
springsource ×1
user-input ×1