Befehle an eine Konsolenanwendung senden?

Ich möchte etwas verifizieren, weil es in meinem Kopf Sinn macht, aber in Java funktioniert es nicht.

Ich versuche, eine andere Jar-Datei über meine Anwendung auszuführen. Ein Minecraft-Server, um genau zu sein. Ich habe alle Grundlagen unten (mitProcessBuilder, mit Argumenten ausführen, auf einen Exit-Code warten usw.), aber eines kann ich nicht herausfinden. Senden von Befehlen an die Anwendung. Hier ein Teil von mirCommandLineSender Klasse:

public class CommandLineSender extends Thread {

    private BufferedWriter output;
    private InputStream source;  // Set to System.in when creating the object
    private boolean stopRequested;

    public CommandLineSender(Process sendTo, InputStream source) {
        this.output = new BufferedWriter(new OutputStreamWriter(sendTo.getOutputStream()));
        this.source = source;
        System.out.println("Source InputStream initiated: " + source.toString());
        this.stopRequested = false;
    }

    @Override
    public void run() {
        System.out.println("Run called.");
        Scanner cmdScanner = new Scanner(source);
        while (cmdScanner.hasNextLine() && !stopRequested) {
            System.out.println("Has next line");
            String msg = cmdScanner.nextLine();
            write(msg);
            System.out.println("Wrote: " + msg);
        }

        // Close the scanner and BufferedWriter

        System.out.println("Closed.");

    }

    // Other various methods

    protected void write(String msg) {
        try {
            output.write(msg);
        } catch (IOException e) {
            System.err.println("Unable to write message because of an unhandled IOException: " + e.getMessage());
        }

    }

Die Ausgabe, die ich erhalte, ist die folgende:

(Default Minecraft server output)

help  // My command
Has next line
Wrote: help

Dies ist möglicherweise nicht wichtig, aber ich führe meinen Server mit den folgenden Argumenten aus:

java -Xmx1024M -Xms1024M -jar (path to server jar) nogui

Vielen Dank für Ihre Zeit.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage