


Wie kann ich mehrere Befehlszeilenbefehle von einem Java-Programm aus effizient ausführen?
Befehlszeilenbefehle über Java ausführen
Das Ausführen externer Befehle aus einem Java-Programm kann nützlich sein, um Aufgaben zu automatisieren oder auf Systemfunktionen zuzugreifen. Wie jedoch in der ersten Frage gezeigt, führt die einfache Verwendung von Runtime.getRuntime().exec() möglicherweise nicht zum gewünschten Verhalten, insbesondere bei der Interaktion mit der Windows-Eingabeaufforderung.
Um dieses Problem zu beheben, benötigen Sie eine erweiterte Herangehensweise ist erforderlich. Wie im zitierten Beitrag vorgeschlagen, besteht eine effektive Lösung darin, einen Prozess wiederzuverwenden, um mehrere Befehle auszuführen. Der folgende Code veranschaulicht diese Technik:
String[] command = {"cmd"}; Process p = Runtime.getRuntime().exec(command); new Thread(new SyncPipe(p.getErrorStream(), System.err)).start(); new Thread(new SyncPipe(p.getInputStream(), System.out)).start(); PrintWriter stdin = new PrintWriter(p.getOutputStream()); stdin.println("dir c:\ /A /Q"); // Add additional commands here stdin.close(); int returnCode = p.waitFor(); System.out.println("Return code = " + returnCode); class SyncPipe implements Runnable { public SyncPipe(InputStream istrm, OutputStream ostrm) { istrm_ = istrm; ostrm_ = ostrm; } public void run() { try { byte[] buffer = new byte[1024]; int length; while ((length = istrm_.read(buffer)) != -1) { ostrm_.write(buffer, 0, length); } } catch (Exception e) { e.printStackTrace(); } } private final OutputStream ostrm_; private final InputStream istrm_; }
Erklärung:
- Der Code startet einen cmd-Prozess und hält ihn für nachfolgende Befehle am Leben.
- Zwei Threads werden erstellt, um die Eingabe- und Ausgabeströme des Prozesses zu verarbeiten und so Echtzeit sicherzustellen Interaktion.
- stdin wird verwendet, um den Befehl „dir c: /A /Q“ an die Eingabeaufforderung zu senden.
- Der Prozess führt diesen Befehl und alle zusätzlichen über stdin gesendeten Befehle aus.
- p.waitFor() blockiert, bis der Befehl beendet ist, und stellt so sicher, dass alle Aufgaben abgeschlossen sind, bevor fortgefahren wird.
- Der Rückkehrcode wird überprüft, um den Erfolg anzuzeigen oder Fehler bei den ausgeführten Befehlen.
Dieser Ansatz ermöglicht eine interaktivere Ausführung von Befehlen an der Windows-Eingabeaufforderung aus einer Java-Anwendung heraus.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Befehlszeilenbefehle von einem Java-Programm aus effizient ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft