在java中刷新outputscreen并同时获取输入
嗨,我要写一个程序来启动多个minecraft服务器: 如果键入“启动服务器名”,它将启动此服务器。 如果您键入“watch servername”,程序将显示此服务器的输出,您应该能够同时发送命令(到此服务器),直到您键入类似“exit”的内容。问题是我不知道如何刷新outputscreen并同时从键盘获取输入。 以下是我在server类中的代码:
class Server{
private String name;
private StartCommand command;
private boolean on = false;
private Process p = null;
public Server(StartCommand c, String name){
this.command = c;
this.name = name;
}
public void start(){
try {
p = Runtime.getRuntime().exec(command.getCommand());
System.out.println("Server: " + name + " is on now!");
on = true;
} catch (IOException e) {
e.printStackTrace();
on = false;
}
}
public void watch(){
try{
Scanner sc = new Scanner(System.in);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
on = false;
}
}
}
我希望你能帮助我。 问候语, 费边
# 1 楼答案
服务器控制台应显示在单独的终端和客户端控制台中,用户可以在其中键入命令。 与mysql等任何服务器类似,mysql都有一个日志,其中显示服务器输出。mysql客户端命令,其中用户键入其sql命令。 或者将监视输出重定向到文件,然后键入下一个命令