Führen Sie einen externen Prozess in Java aus

ProcessBuilder Auf der aktuellen Site gab es eine Anfrage, Shell aus Java heraus zu treffen. Als Ergebnis der Untersuchung wurde sie in diesem Artikel eingeführt. ** ProcessBuilder * Es scheint, dass Sie etwas verwenden sollten, das * heißt. Ich habe den verknüpften Code umgeleitet, aber wenn ich ihn tatsächlich verwende, werde ich den Aufruf des Prozesses dynamisch ändern ... Also habe ich ein Memo komplett geschrieben.

CallOutsideProcess.java



/** 
Rufen Sie beim Anrufer so viele Argumente auf, wie Sie möchten.
Ex) execute(new String[]{"ping","111,222,33,4"});
*/
public class CallOutsideProcess {
	public void execute(String args[]) {
		try {
			Process process = new ProcessBuilder(args).start();
			InputStream is = process.getInputStream();

			/*Abhängig von der Ausgabe der Zeichenfolge usw. auf der Prozessausführungsseite
Wenn die Zeichencodes nicht übereinstimmen, werden die Zeichen beim Empfang verstümmelt.*/
			InputStreamReader isr = new InputStreamReader(is, "Shift-JIS");
//			InputStreamReader isr = new InputStreamReader(is, "UTF-8");

			BufferedReader reader = new BufferedReader(isr);
			StringBuilder builder = new StringBuilder();
			int c;
			while ((c = reader.read()) != -1) {
				builder.append((char) c);
			}
			//Speicherung von Zeichenfolgen, die an die Konsole ausgegeben werden
			text = builder.toString();
			//Speicherung des Endcodes(0:Normale Kündigung 1:Abnormale Beendigung)
			int ret = process.waitFor();
			System.out.println(text);
			System.out.println(ret);

		} catch (IOException | InterruptedException e) {
			e.printStackTrace();
		}
	}
}

Es war ein Inhalt, den ich wahrscheinlich in Zukunft verwenden würde, also erinnern wir uns ... ~~ (... Ich habe es geschrieben, damit ich mich daran erinnern kann, auch wenn ich es vergesse) ~~

Recommended Posts

Führen Sie einen externen Prozess in Java aus
Ich habe eine E-Mail in Java gesendet
Führen Sie Java-Anwendungen in Azure Batch aus
Thread-sicherer Prozess in Java-Sprache
Versuchen Sie einen If-Ausdruck in Java
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
Verarbeiten Sie eine beliebige Anzahl von Fällen in Java List
Java-Pufferprozess
Änderungen in Java 11
Janken in Java
Java-Überprüfungsprozess
Beim Aufrufen von println usw. aus einer externen Java-Klassendatei in Processing
Ich möchte eine E-Mail in Java senden.
Zweite Abkochung: Versuchen Sie einen If-Ausdruck in Java
So lösen Sie Ausdrucksprobleme in Java
Kommen Sie mit Java-Containern in Cloud Run zurecht
Lesen Sie JSON in Java
Machen Sie einen Blackjack mit Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Ich habe leicht verständlich über Java Downcast geschrieben
[Java] Wirf eine Ausnahme aus
Kommentare in der Java-Quelle
Azure funktioniert in Java
Führen Sie PostgreSQL unter Java aus
Formatieren Sie XML in Java
Einfache HTML-Spezialchars in Java
Hallo Welt in Java
Fügen Sie eine externe JAR-Datei in ein IntelliJ-Projekt ein.
Verwenden Sie OpenCV mit Java
WebApi-Memorandum mit Java
Typbestimmung in Java
Implementieren Sie Singleton mit Enum schnell in Java
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
POST JSON in Java
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
Datumsmanipulation in Java 8
Was ist neu in Java 8?
Java11: Führen Sie Java-Code unverändert in einer einzelnen Datei aus
Verwenden Sie PreparedStatement in Java
Was ist neu in Java 9,10,11
Parallele Ausführung in Java
Verwenden Sie Java Web Start in einer OpenJDK-Umgebung unter Windows
Identifizieren Sie Threads im Java-Prozess, die CPU verschwenden
Führen Sie R von einem Tomcat-basierten Java-Prozess unter Amazon Linux aus
Zeigen Sie die Wettervorhersage mit OpenWeatherMap an, einer externen API in Ruby
Ruft Attribute und Werte aus einer XML-Datei in Java ab
Stoppen Sie den Java-Prozess zwangsweise, indem Sie die PID in Windows PowerShell angeben
Generieren Sie AWS Signature V4 in Java und fordern Sie die API an
Generieren Sie Stream aus einem Array primitiver Typen in Java