Hallo Zusammen,
folgendes Problem. Ich rufe aus meiner Java Anwendung ein anderes Programm ".exe" auf.
Das externe Programm führt kurz etwas aus und gibt über die Konsole einen String zurück, ob der Vorgang erfolgreich war oder nicht.
Jetzt möchte ich diesen String abfangen und aus meinem Programm heraus auswerten.
Dazu habe ich folgendes versucht:
Die Methode pBuilder.redirectOutput(output) funktioniert einwandfrei. Der String wird empfangen und in die Datei geschrieben.
Die Variable response bleibt leider leer.
Wenn der Text in dem Outputfile steht bringt mir das leider nichts. Ich möchte dann nicht wieder die Datei auslesen. Wie komme ich direkt an den String, bzw. wo ist mein Fehler?
Ich schätze auch mal, dass ich eine Möglichkeit finden muss mit der pBuilder Variable den Output abzufangen und nicht mit der Process Variable "p". Aber für die pBuilder gibt es nur die Möglichkeiten redirectOutput() mit Redirect als Rückgabetyp, redirectOutput(File file) mit ProcessBuilder als Rückgabewert und redirectOutput(Redirect destination) ebenfalls mit ProcessBuilder als Rückgabewert.
Hat jemand eine Idee, wie ich das machen kann, bzw. sieht jemand meinen Fehler?
Bin für jede Hilfe dankbar!
Gruß
TDO
Übrigens: Das externe Programm ist eine C Anwendung, welche über cout den Befehl am Ende schickt, den ich benötige. Weiß nicht, ob das von Interesse ist
folgendes Problem. Ich rufe aus meiner Java Anwendung ein anderes Programm ".exe" auf.
Das externe Programm führt kurz etwas aus und gibt über die Konsole einen String zurück, ob der Vorgang erfolgreich war oder nicht.
Jetzt möchte ich diesen String abfangen und aus meinem Programm heraus auswerten.
Dazu habe ich folgendes versucht:
Java:
ProcessBuilder pBuilder = new ProcessBuilder(SwitchBoardPath,LoadINICommand);
File output = new File("C:\\Users\\TDO\\Desktop\\output.txt");
pBuilder.redirectOutput(output);
Process p = pBuilder.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
p.waitFor();
StringBuilder response = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
response.append(line + "\n");
}
bufferedReader.close();
Die Methode pBuilder.redirectOutput(output) funktioniert einwandfrei. Der String wird empfangen und in die Datei geschrieben.
Die Variable response bleibt leider leer.
Wenn der Text in dem Outputfile steht bringt mir das leider nichts. Ich möchte dann nicht wieder die Datei auslesen. Wie komme ich direkt an den String, bzw. wo ist mein Fehler?
Ich schätze auch mal, dass ich eine Möglichkeit finden muss mit der pBuilder Variable den Output abzufangen und nicht mit der Process Variable "p". Aber für die pBuilder gibt es nur die Möglichkeiten redirectOutput() mit Redirect als Rückgabetyp, redirectOutput(File file) mit ProcessBuilder als Rückgabewert und redirectOutput(Redirect destination) ebenfalls mit ProcessBuilder als Rückgabewert.
Hat jemand eine Idee, wie ich das machen kann, bzw. sieht jemand meinen Fehler?
Bin für jede Hilfe dankbar!
Gruß
TDO
Übrigens: Das externe Programm ist eine C Anwendung, welche über cout den Befehl am Ende schickt, den ich benötige. Weiß nicht, ob das von Interesse ist
Zuletzt bearbeitet von einem Moderator: