Znikanie tekstu pisanego w cmd (linux)

0

Witam,
napisałem sobie mini program (odpalam go przez ssh na linuxie), który po wpisaniu komendy odpala mi server Minecraft.
Mój problem polega na tym, że po dostaniu komunikatu "Uruchamiam server Test/1..." (server odpala się w nowym wątku)
przestaje się pokazywać wpisywany tekst do cmd.
Po prostu muszę wpisać komendę "na ślepo", dać enter i zadziała

Co mogę zrobić, aby na bieżąco widzieć co wpisuje?
Zaznaczam, że dzieje się to po odpaleniu servera ;)
Oto kod odpalania:

new Thread(new Runnable() {
                 
    @Override
    public void run() {
        try{
        System.out.println(Main.GREEN + "Uruchamiam server " + name + "..." + Main.WHITE);
 
        Process p = Runtime.getRuntime().exec("bash");
        Main.process.put(name, p);
     
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
 
        bw.write("cd /***ścieżka do pliku***/" + name + '\n');
        bw.flush();
                     
        bw.write("java -Xms256M -Xmx256M -jar craftbukkit.jar" + '\n');
        bw.flush();
        bw.close();
        System.setIn(Main.is);
        System.setOut(new PrintStream(Main.os));
        }catch(Exception e){e.printStackTrace();}
                     
    }
    }).start();  

Z góry dzięki za pomoc!

0

Skoro przekierowałeś inputStream i outputStream

System.setIn(...);
System.setOut(...);

to nie dziw się, że nic nie wyświetla. Domyślny strumień wejściowy (konsola) ma domyślnie włączone echo, czyli drukuje to, co piszesz. W Twojej sytuacji po prostu wysyłasz to do programu "bash" (do zwykłej konsoli), ale nie drukujesz. Żeby było ciekawiej, strumień wyjściowy też masz gdzieś wywalony, więc nawet jeśli coś drukuje, to raczej nie na ekranie. Popracuj nad swoimi strumieniami lub ręcznie wszystko z wejścia wysyłaj na domyślne wyjście.

1 użytkowników online, w tym zalogowanych: 0, gości: 1