我使用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".有没有解决方法?
如何从控制台输入掩码密码?我正在使用Java 6.
我尝试过使用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");
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个NullPointerException ...