Java ProcessBuilder pour commencer à exécuter plusieurs commandes de manière séquentielle sous Linux
Je voudrais exécuter 2 ou plus de commandes de manière séquentielle à travers mon Application Java à l'aide ProcessBuilder classe. J'Ai essayé plusieurs options comme suggéré dans d'autres réponses/forums mais pas de chance.
Ici sont les choses que j'ai essayé:
ProcessBuilder processBuilder = new ProcessBuilder("ls", ";", "pwd");
Me donne l'erreur suivante :
Erreurs : ls: ;: Aucun fichier ou répertoire
Erreurs : ls: pwd: Aucun fichier ou répertoire de
ProcessBuilder processBuilder = new ProcessBuilder("ls", "&&", "pwd");
Me donne une erreur similaire:
Erreurs : ls: &&: Aucun fichier ou répertoire
Erreurs : ls: pwd: Aucun fichier ou répertoire de
List<String> command = new ArrayList<String>();
command.add("ls");
command.add(";");
command.add("pwd");
ProcessBuilder processBuilder = new ProcessBuilder(command);
Me donne l'erreur suivante:
Erreurs : ls: ;: Aucun fichier ou répertoire
Erreurs : ls: pwd: Aucun fichier ou répertoire de
Mon système d'exploitation est Linux/Mac-OSX.
source d'informationauteur Narinder Kumar | 2012-09-04
Vous devez vous connecter pour publier un commentaire.
Vos approches sont équivalentes à l'appel de
ls
avec les arguments spécifiés. En Bash notation, ce que vous êtes en cours d'exécution est:Si vous voulez
ls
etpwd
être exécuté en tant que distincte des commandes, vous pouvez utiliser Bash (ou un autre environnement linguistique) pour les intégrer dans une seule commande:lequel vous pouvez appeler de cette façon:
Vous pourriez obtenir le Processus de ProcessBuilder.start() à partir de la première commande, attendre l'aide de waitFor()puis de lancer la deuxième.