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

whi*_*hat 6 java console

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

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

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

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

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

thi*_*goh 6

因为它是eclipse的一个bug #122429


Fah*_*kar 2

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

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

另外,根据文档

如果虚拟机自动启动(例如通过后台作业调度程序),则它通常不会有控制台。