[LINUX] Lassen Sie uns das Bash-Skript in Java ausführen

Einführung

Wenn Sie einen Prozess mit Processbuilder oder Runtime in Java erstellen, verhält er sich möglicherweise anders als unter Linux. Wenn Sie vorübergehend ein "Bash-Skript (Shell-Skript)" erstellen und ausführen, verhält es sich möglicherweise wie gewünscht.

Code


public void executeCommands() throws IOException {

//Temporäre Dateierstellung
    File tempScript = createTempScript();

    try {
        //Skriptausführung
        ProcessBuilder pb = new ProcessBuilder("bash", tempScript.toString());

       //Fehlerausgabe
       try (BufferedReader buffer = new BufferedReader(new InputStreamReader(process.getErrorStream()))) {
               System.out.println(buffer.lines().collect(Collectors.joining("\n")));
       }

      //Standardausgabe
      try (BufferedReader buffer = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
               System.out.println(buffer.lines().collect(Collectors.joining("\n")));
       }
        Process process = pb.start();
        process.waitFor();
    } finally {
        //Temporäres Löschen von Dateien
        tempScript.delete();
    }
}

public File createTempScript() throws IOException {
    //Temporäre Dateierstellung
    File tempScript = File.createTempFile("script", null);

    Writer streamWriter = new OutputStreamWriter(new FileOutputStream(
            tempScript));
    PrintWriter printWriter = new PrintWriter(streamWriter);

    //Ich werde ein Skript schreiben.
    printWriter.println("#!/bin/bash");
    printWriter.println("cd bin");
    printWriter.println("ls");

  //Ende des Schreibens
    printWriter.close();

    return tempScript;
}

Referenz (Pakuri davon)

https://stackoverflow.com/questions/26830617/running-bash-commands-in-java

Recommended Posts

Lassen Sie uns das Bash-Skript in Java ausführen
Führen Sie ein mehrzeiliges Skript in einem PDB aus
Führen Sie den Python-Interpreter im Skript aus
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Versuchen wir es mit einem Shell-Skript
Lassen Sie uns ein Cron-Programm in Java erstellen! !! (TaskScheduler)
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Hinweise zum Einbetten der Skriptsprache in Bash-Skripte
Hinweis 2 zum Einbetten der Skriptsprache in ein Bash-Skript
Lassen Sie uns "Python -m Antigravitation" in Python ausführen
Führen Sie ein lokales Skript auf einem Remote-Host aus
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Verwenden Sie Python 3 Subprocess.run () im CGI-Skript
So führen Sie Maya Python-Skripte aus
Führen Sie PIFuHD in der Windows + Anaconda + Git Bash-Umgebung aus
Ich habe eine Klasse in Python3 und Java geschrieben
[AWS] Lassen Sie uns einen Komponententest der Lambda-Funktion in der lokalen Umgebung durchführen
Bash in Jupyter
Schreiben wir ein Python-Programm und führen es aus
Rufen Sie Python-Skripte aus Embedded Python in C ++ / C ++ auf
Bash-Skript-Memo
Führen Sie Python-Skripte in Excel aus (mit xlwings).
Führen Sie cbc von "Let's make a normal compiler" mit Java 8 oder höher + 64bit aus
Lassen Sie uns gemeinsam die Standardeingabe / -ausgabe von bash verstehen und ein Shell-Skript schreiben.
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Ich habe ein Skript erstellt, um ein Snippet in README.md einzufügen
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
Führen Sie eine Python-Datei mit relativem Import in PyCharm aus
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
Generieren Sie ein Bash-Skript, um die Einstellungen des Datadog-Monitors hinzuzufügen
Fassadenmuster in Java
Singleton-Muster in Java
Fliegengewichtsmuster in Java
Beobachtermuster in Java
Linux-Berechtigungen für Java
Verwenden Sie DataFrame in Java
Iteratormuster in Java
Dekorationsmuster in Java
diktieren in diktieren Macht ein Diktat ein Diktat
Prototypmuster in Java
Proxy-Muster in Java
So führen Sie ein Python-Programm in einem Shell-Skript aus
Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
Ich habe ein Numer0n-Kampfspiel in Java gemacht (ich habe auch KI gemacht)
Verarbeiten Sie die Dateien im Ordner in der Reihenfolge mit dem Shell-Skript
Ich habe ein Skript geschrieben, um eine beliebte Seite in Japan zu bekommen
Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt