【发布时间】:2016-11-24 17:00:34
【问题描述】:
为了在 Java 中获得对控制台的引用,需要编写
Console console = System.console();
但是,当尝试在 IDE 中执行此操作时,控制台将被初始化为 null。为什么 IDE 中没有控制台?在直接从终端运行程序而不是在 IDE 中运行程序时,允许控制台存在的思考过程是什么?
【问题讨论】:
标签: java
为了在 Java 中获得对控制台的引用,需要编写
Console console = System.console();
但是,当尝试在 IDE 中执行此操作时,控制台将被初始化为 null。为什么 IDE 中没有控制台?在直接从终端运行程序而不是在 IDE 中运行程序时,允许控制台存在的思考过程是什么?
【问题讨论】:
标签: java
引用自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);
像这样的一些事情............
【讨论】: