Не удается выполнить запись в поток

404
31 мая 2017, 03:52

Пишу оболочку для сервера Minecraft и столкнулся со следующей проблемой. Есть поток, в котором непосредственно запускается jar файл сервера. Вот код:

public class ServerThread extends Thread{

    volatile public Process proc;
    volatile public InputStream is;
    volatile public OutputStream os;
    volatile public InputStreamReader reader;
    volatile public OutputStreamWriter writer;
    volatile public BufferedReader breader;
    volatile public BufferedWriter bwriter;

    @Override
    public void run() {
        proc = Runtime.getRuntime().exec("java -jar minecraft_server.1.10.2.jar nogui");
        is = proc.getInputStream();
        os = proc.getOutputStream();

        reader = new InputStreamReader (is);
        breader = new BufferedReader (reader);
        writer = new OutputStreamWriter (os);
        bwriter = new BufferedWriter (writer);
        while (true) {  
            String str = "";
            if(breader.ready()){
                str = breader.readLine();
            }
            //
            // Some work with strings
            //
            if(str.contains ("[Server Shutdown Thread/INFO]: Stopping server")){
                break;
            }
        }
        System.out.println("exiting");
        serverState.set(0);
    }
    synchronized public void sendCommand(String str){
        bwriter.write(str);
        bwriter.flush();
    }
}

Этот поток запускается из некоторого внешнего потока, откуда также вызывается функция sendCommand(""). Примерно так:

class Test{
    public static void main (String[] args) {
        ServerThread thr = new ServerThread();
        thr.start();
        thr.sendCommand("/stop"); //stop server. See minecraft server commands
    }
}

Однако после вызова sendCommand(); ничего не происходит, как будто запись в поток не произошла. Как решить эту проблему?

READ ALSO
Разбор библиотеки на “запчасти”

Разбор библиотеки на “запчасти”

Весьма актуальный как мне кажетсяЕсть библиотеки, имплементить всё подряд не дело, так как всё имеет свойство устаревать + зачастую нам не нужен...

407
Непонятная ошибка в Android Studio 2.3.2

Непонятная ошибка в Android Studio 2.3.2

Вчера вечером работал над проектом, все было нормально, сегодня захожу и у меня ошибка во всех файлах

382
Отправка формы на сервер

Отправка формы на сервер

У меня есть метод:

372
Подключение к базе java

Подключение к базе java

ЗдравствуйтеУстановил приложение на хостинг, создал базу, добавил таблицы, вьюхи и т

284