Lançons le script Bash en Java

introduction

Si vous créez un processus avec Processbuilder ou Runtime en Java, il se peut qu'il se comporte d'une manière qui n'est pas nécessairement la même que celle sous Linux. Si vous créez temporairement un "script bash (script shell)" et que vous l'exécutez, il peut se comporter comme vous le souhaitez.

code


public void executeCommands() throws IOException {

//Création de fichiers temporaires
    File tempScript = createTempScript();

    try {
        //Exécution du script
        ProcessBuilder pb = new ProcessBuilder("bash", tempScript.toString());

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

      //Sortie standard
      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 {
        //Suppression de fichiers temporaires
        tempScript.delete();
    }
}

public File createTempScript() throws IOException {
    //Création de fichiers temporaires
    File tempScript = File.createTempFile("script", null);

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

    //J'écrirai un script.
    printWriter.println("#!/bin/bash");
    printWriter.println("cd bin");
    printWriter.println("ls");

  //Fin d'écriture
    printWriter.close();

    return tempScript;
}

Référence (Pakuri de ceci)

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

Recommended Posts

Lançons le script Bash en Java
Exécuter un script multiligne dans un PDB
Exécuter l'interpréteur Python dans le script
Un mémorandum pour exécuter un script python dans un fichier bat
Essayons un script shell
Faisons un programme cron en Java! !! (Planificateur de tâches)
Créons un script qui s'enregistre avec Ideone.com en Python.
Remarques sur l'intégration du langage de script dans les scripts bash
Remarque 2 pour intégrer le langage de script dans un script bash
Lançons "python -m antigravity" en python
Exécuter un script local sur un hôte distant
Faisons un calcul de combinaison avec Python
Utilisez Python 3 Subprocess.run () dans le script CGI
Comment exécuter des scripts Maya Python
Exécutez PIFuHD dans l'environnement Windows + Anaconda + Git Bash
J'ai écrit une classe en Python3 et Java
[AWS] Lançons un test unitaire de la fonction Lambda dans l'environnement local
Bash dans Jupyter
Écrivons un programme Python et exécutons-le
Appel de scripts Python à partir de Python intégré en C ++ / C ++
Mémo de script Bash
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
Exécutez cbc de "Faisons un compilateur normal" avec Java 8 ou version ultérieure + 64 bits
Comprenons ensemble les entrées / sorties standard de bash et écrivons un script shell.
Je veux écrire en Python! (2) Écrivons un test
Créer un plugin pour exécuter Python Doctest sur Vim (2)
J'ai fait un script pour mettre un extrait dans README.md
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Exécuter un fichier Python avec une importation relative dans PyCharm
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
Générer un script bash pour ajouter les paramètres du moniteur Datadog
Modèle de façade en Java
Motif singleton en Java
Modèle de poids mouche en Java
Modèle d'observateur en Java
Autorisations Linux sur Java
Utiliser DataFrame en Java
Modèle d'itérateur en Java
Modèle de décorateur en Java
dict in dict Transforme un dict en dict
Modèle de prototype en Java
Modèle de proxy en Java
Comment exécuter un programme Python à partir d'un script shell
Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)
J'ai fait un jeu de combat Numer0n en Java (j'ai aussi fait de l'IA)
Traitez les fichiers du dossier dans l'ordre avec le script shell
J'ai écrit un script pour obtenir un site populaire au Japon
Créons une fonction pour maintenir Button dans Tkinter
Un ensemble de fichiers de script qui font wordcloud avec Python3
J'ai écrit un script qui divise l'image en deux