Wenn Sie versuchen, ein externes Programm aus einer Java-Anwendung auszuführen und Parameter daran zu übergeben, kann es vorkommen, dass die Das Programm wird fehlerfrei ausgeführt, führt aber die beabsichtigte Aktion nicht aus.
In dem von Ihnen bereitgestellten Beispielcode verwenden Sie zur Ausführung die Methode Runtime.getRuntime().exec() das externe Programm. Diese Methode verwendet ein Array von Zeichenfolgen als Argument, wobei das erste Element der auszuführende Befehl und die nachfolgenden Elemente die an den Befehl zu übergebenden Argumente sind.
Das Problem in Ihr Code besagt, dass Sie die Ausgabe des externen Programms nicht korrekt erfassen. Um die Ausgabe zu erhalten und das Verhalten des Programms zu überprüfen, können Sie den folgenden geänderten Code verwenden:
<code class="java">Process process = new ProcessBuilder( "C:\Users\user\Desktop\program.exe", "C:\Users\user\Desktop\images.jpg", "C:\Users\user\Desktop\images2.txt" ) .start(); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; System.out.printf("Output of running %s is:", Arrays.toString(params)); while ((line = br.readLine()) != null) { System.out.println(line); }</code>
In diesem Code verwenden wir die ProcessBuilder-Klasse, um einen neuen Prozess zu erstellen, der dies tut das externe Programm ausführen. Anschließend wird die start()-Methode verwendet, um den Prozess zu starten.
Um die Ausgabe des Prozesses zu erfassen, erstellen wir einen InputStream aus dem Prozess, einen InputStreamReader zum Umschließen des InputStream und einen BufferedReader zum Lesen von Zeilen aus dem InputStreamReader.
Wir verwenden dann die readLine()-Methode von BufferedReader, um jede Ausgabezeile des Prozesses zu lesen. Abschließend werden die Ausgabezeilen mit der Anweisung System.out.println() gedruckt.
Mit diesem Ansatz können Sie externe Programme aus Java ausführen und deren Ausgabe erfassen, einschließlich aller Fehler oder Meldungen, die sie möglicherweise erzeugen . Diese Ausgabe können Sie dann zur weiteren Verarbeitung oder Anzeige der Ergebnisse verwenden.
Das obige ist der detaillierte Inhalt vonWie erfasst man die Ausgabe externer Programme, die mit zusätzlichen Parametern in Java ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!