当我使用Eclipse Helios的System.console时,它总是返回null。
但是,当我直接从命令行使用它时(即从命令提示符手动编译和执行java源代码),我确实得到了一个Console对象。
要知道,为什么会发生这种情况我检查了this链接。根据它,当我从Eclipse运行我的Java代码时,后台作业调度程序必须启动我的JVM。这是什么意思?
当我从命令行启动JVM时,我的JVM有多么不同?
我还查看了this链接。这里McDowell说cmd.exe是一个控制台设备。那么我又一次感到困惑,那确实是一个控制台设备?
答案 0 :(得分:6)
因为它是eclipse的错误#122429
答案 1 :(得分:2)
System.console()
将返回null。
您可以通过adding a layer of indirection to your code或在外部控制台中运行代码attaching a remote debugger来解决此问题。
另外,根据docs:
如果虚拟机是自动启动的,例如后台作业调度程序,那么它通常没有控制台。