为什么Java中的IDE中没有控制台



为了获得对Java控制台的引用,需要编写

Console console = System.console();

然而,当尝试在IDE中执行此操作时,控制台将用null初始化。为什么IDE中没有控制台?与在IDE中运行程序相比,直接从终端运行程序时允许控制台存在的思想过程是什么?

引用javadocs:

虚拟机是否具有控制台取决于底层平台,也取决于调用虚拟机的方式。如果虚拟机是从交互式命令行启动的,而没有重定向标准输入和输出流,那么它的控制台将存在,并且通常将连接到启动虚拟机的键盘和显示器。如果虚拟机是自动启动的,例如由后台作业调度程序启动,那么它通常不会有控制台。

您的IDE以非交互式方式运行jvm(没有键盘连接到输入),因此控制台在那里不可用。

为什么不使用

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  //for reading from  console 
   String str = bf.readline();
   //for control ...
   if(str.length >0){
           do something;
    }
    //for writing to console
      String utr= something;
      bf.write(utr);

有些事情是这样的。。。。。。。。

最新更新