从Windows CLI运行的Java代码仍然获得null System.console()

时间:2013-06-27 22:13:20

标签: java windows command-line

在这里和围绕着在各种环境中使用Java的System.console()的网络有很多问题。他们中的大多数都与获得null返回的限制和警告有关,即“当没有可用的控制台时”。很公平。

我的困惑源于看到null返回,即使我在Windows上使用命令行环境工作也是如此。 (注意,这是关于从Eclipse内部做任何事情;已经被问过并回答了一百万次,我甚至没有使用Eclipse。也没有谈论双击或右键单击或任何其他类型的JAR文件;当你从GUI文件管理器启动时,显然没有控制台。)

到目前为止,我在Windows 7下尝试了以下组合:

  • 默认Windows \ System32“java”
  • 默认Windows \ System32“javaw”
  • Sun / Oracle的标准JavaSE JRE 7u25“java”
  • Sun / Oracle的标准JavaSE JRE 7u25“javaw”
  • Sun / Oracle的JavaSE JDK 7u25“java”
  • Sun / Oracle的JavaSE JDK 7u25“javaw”

  • 以上所有6个都在Cygwin的薄荷和普通的老CMD.EXE

我认为java / javaw的区别在于一个人有一个控制台而另一个没有,但即使我从命令行提示符运行了所有12次尝试,System.console()也是永远是空的。

testbed代码很简单,并且在其他操作系统(例如,Linux,其中System.console()始终存在于xterm和whatnot中,并且在从/ dev / null重定向stdin时变为null) )。

当用户从CLI运行时,我们必须牺牲什么处女山羊来向Java的黑暗之神获取Windows中的System.console()?

0 个答案:

没有答案