Heim > Java > javaLernprogramm > Hauptteil

Wie führt man externe Programme in Java aus und erfasst deren Ausgabe?

Barbara Streisand
Freigeben: 2024-10-30 09:29:02
Original
291 Leute haben es durchsucht

How to Execute External Programs in Java and Capture Their Output?

So führen Sie externe Programme in Java aus

Bei der Bearbeitung komplexer Aufgaben oder der Schnittstelle zu externen Systemen müssen Java-Entwickler häufig externe Programme ausführen aus ihrem Code. Obwohl diese Aufgabe vom Konzept her unkompliziert ist, kann sie verschiedene Herausforderungen mit sich bringen, wie z. B. Prozessmanagement, Parameterübergabe und Fehlerbehandlung.

Ein gängiger Ansatz zum Ausführen externer Programme in Java ist die Verwendung von Runtime.getRuntime().exec ()-Methode. Diese Methode verwendet ein Array von Zeichenfolgen als Argument, wobei das erste Element den ausführbaren Pfad darstellt und die nachfolgenden Elemente als Befehlszeilenparameter fungieren.

Der in der Frage bereitgestellte Code verwendet zwar diese Methode, dies ist jedoch nicht der Fall Erfassen Sie die Ausgabe oder interagieren Sie mit dem externen Programm. Um dies zu beheben, können wir stattdessen einen prozessbasierten Ansatz verwenden:

<code class="java">Process process = new ProcessBuilder("C:\PathToExe\MyExe.exe", "param1", "param2").start();</code>
Nach dem Login kopieren

Dieser Code erstellt ein ProcessBuilder-Objekt und gibt die ausführbare Datei und ihre Parameter an. Anschließend initiiert es das externe Programm durch Aufrufen der start()-Methode und gibt ein Process-Objekt zurück, das den untergeordneten Prozess darstellt.

Um mit dem untergeordneten Prozess zu interagieren und auf seine Ausgabe zuzugreifen, können wir Eingabe- und Ausgabeströme verwenden:

<code class="java">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(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}</code>
Nach dem Login kopieren

Dieser Code öffnet einen Eingabestream vom untergeordneten Prozess, erstellt einen Reader und durchläuft dann die Ausgabe Zeile für Zeile, um sie auf der Konsole anzuzeigen.

Durch die Verwendung eines Prozesses -basierten Ansatz können wir externe Programme effektiv ausführen, deren Ein- und Ausgabe verwalten und Fehler umfassend behandeln. Der bereitgestellte Code dient als Ausgangspunkt für Entwickler, die über Java-Code eine Schnittstelle zu externen Systemen herstellen möchten.

Das obige ist der detaillierte Inhalt vonWie führt man externe Programme in Java aus und erfasst deren Ausgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!