刷新输出屏幕并在java中同时获取输入

时间:2014-06-29 09:13:28

标签: java

您好我即将编写一个启动多个Minecraft服务器的程序: 如果您键入' start servername',它将启动此服务器。 如果您键入' watch servername',程序将显示此服务器的输出,您应该能够同时发送命令(到此服务器),直到您输入某个命令为止。喜欢'退出'问题是我不知道如何刷新输出屏幕并同时从键盘输入。 这是我的服务器类代码:

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 个答案:

答案 0 :(得分:0)

服务器控制台应显示在单独的终端和客户端控制台中,用户可以在其中键入命令。 类似于任何服务器,例如mysql都有一个显示服务器输出的日志。 mysql客户端命令,用户在其sql命令中键入。 或者将监视输出重定向到文件,然后键入下一个命令。