System.console()从Eclipse返回null,但命令提示符很好

时间:2012-01-23 10:10:14

标签: java console

当我使用Eclipse Helios的System.console时,它总是返回null。

但是,当我直接从命令行使用它时(即从命令提示符手动编译和执行java源代码),我确实得到了一个Console对象。

要知道,为什么会发生这种情况我检查了this链接。根据它,当我从Eclipse运行我的Java代码时,后台作业调度程序必须启动我的JVM。这是什么意思?

当我从命令行启动JVM时,我的JVM有多么不同?

我还查看了this链接。这里McDowell说cmd.exe是一个控制台设备。那么我又一次感到困惑,那确实是一个控制台设备?

2 个答案:

答案 0 :(得分:6)

因为它是eclipse的错误#122429

答案 1 :(得分:2)

如果没有控制台,

System.console()将返回null。

您可以通过adding a layer of indirection to your code或在外部控制台中运行代码attaching a remote debugger来解决此问题。

另外,根据docs

  

如果虚拟机是自动启动的,例如后台作业调度程序,那么它通常没有控制台。