Ich versuche, ein externes Programm (.exe) aus einer Java-Datei auszuführen. Dies ist mein Code so weit:Übergeben von Java-Eingabe in externe Anwendung
try{
Process process = new ProcessBuilder(path).start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
catch(Exception e){e.printStackTrace();}
Die erste Ausgabe des Programms auf dem Konsolenfenster meines Java-Programms angezeigt wird, aber leider bedarf es ein Benutzerkennwort und Enter zu drücken. Ich habe bereits versucht, viele mögliche Lösungen zu implementieren, die ich im Internet gefunden habe wie .inheritIO() oder die Befehle innerhalb von Prozessargumenten weiterleiten, zB Process process = new ProcessBuilder (Pfad, "pw", "/ c"). Start() ; aber das funktioniert nicht. Ich verstehe nicht, warum der Eingabestream einwandfrei funktioniert, aber jede Art von Ausgabestream scheint nicht zu funktionieren.
Was ist die EXE? –
Nun, Sie haben nicht erwähnt, dass Sie versuchen, den Ausgabestream des Prozesses zu öffnen (eigentlich ist es der Eingabestream, es ist ein Ausgabestream aus der Sicht von Java). Hast du das versucht? Denken Sie daran, dass viele Programme eine spezielle Interaktion für Kennwörter haben, die keine Streams, sondern direktes Lesen von Schlüsseln oder direkten Gerätezugriff umfassen. – RealSkeptic
Ich bin mir nicht sicher, aber ich denke, das externe Programm ist entweder in Java oder in C/C++ geschrieben. Ist das für meinen Java-Code entscheidend? – FlowRyan