web-dev-qa-db-fra.com

Comment définir un répertoire de travail avec ProcessBuilder

J'essaie de démarrer un processus dans mon répertoire personnel dans ubuntu. Je reçois un tableau hors exception. Voici le code:

Process p = null;
ProcessBuilder pb = new ProcessBuilder();
pb.directory(new File("/home"));
p = pb.start();

Voici l'exception:

Exception in thread "main" Java.lang.ArrayIndexOutOfBoundsException: 0
    at Java.lang.ProcessBuilder.start(ProcessBuilder.Java:459)
    at tester.Main.main(Main.Java:31)
Java Result: 1
31
Eric

Vous essayez d'exécuter/home et ce n'est pas un fichier exécutable. L'argument constructeur du générateur de processus est la commande à exécuter.

Vous souhaitez définir le répertoire de travail. Vous pouvez le faire via la méthode répertoire .

Voici un exemple complet:

Process p = null;
ProcessBuilder pb = new ProcessBuilder("do_foo.sh");
pb.directory(new File("/home"));
p = pb.start();
70
dmeister