我正在用Java创建一个客户端 - 服务器聊天应用程序。我决定不使用像Java swing那样的GUI。我只使用java控制台窗口。现在,我想用新的控制台选项卡打开一个新的主类。我不知道该怎么做。
在Main.java中调用new main
public static void main(String[] args) {
System.out.println("This is main console.");
ServerMain.main(null);
}
ServerMain.java
public static void main(String[] args) {
System.out.println("THIS IS SERVER MAIN.");
}
输出
This is main console.
THIS IS SERVER MAIN.
两个输出都保留在同一个控制台窗口中。 我想要的是将两个输出字符串分成两个独立的控制台选项卡窗口。
答案 0 :(得分:0)
当您运行非GUI Java程序时,它不知道它的周围环境。它只期望一个输入字节流可用作System.in,并且两个输出字节流作为System.out和System.err可用于“其他地方”。
就是这样。没别了。
您要做的是指示CMD.EXE窗口执行事情。这完全属于上述描述的“其他地方”部分,并且在Unix世界中非常普遍,其中在图形屏幕可用之前很久就已经使用了许多不同的基于字符的终端。典型的技巧是在发送到终端的输出流中发送所谓的转义码,然后解释的方式不同于仅显示字符。通常,这可能是移动光标,清洁屏幕和切换字符集等等。
现在你的问题是CMD.EXE不了解很多转义代码,因此你不能告诉它按原样做你想做的事。
要么获得一个更好的终端模拟器来运行你的Java代码,要么在Java程序之外编写一些脚手架,抓住两个流并将它们发送到相应的终端选项卡。