控制台控制台= System.console();给出null

时间:2014-05-08 12:18:23

标签: java eclipse nullpointerexception console

我必须使用Console console = System.console();在Eclipse中通过控制台输入密码,但它总是如此 给了我java.lang.NullPointerException。为什么会这样?

或者还有其他方法可以通过控制台输入密码,这是不可见的?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

正如System.console()的Javadoc中所述,如果没有为JVM分配控制台,它可以返回null。事实上,情况经常如此。所以你不能依赖它是非空的。

从Eclipse运行应用程序时,可以配置它以分配控制台。打开应用的启动配置,转到常用标签,在底部附近,您会找到一个复选框选项,&#34; 分配控制台(输入必需)< /强>&#34;

enter image description here

请参阅@ Jean-Baptiste的答案,隐藏用户在控制台中的输入。但请记住,您的应用必须优雅地处理来自Systemconsole()的空值。