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

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

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

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

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

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

因为它是eclipse的一个错误#122429

如果没有控制台, System.console()将返回null。

您可以通过向代码添加一层间接或通过在外部控制台中运行代码并附加远程调试器来解决此问题 。

另外,根据文档 :

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