2011-12-06 16 views
25

Sto provando ad avviare un processo nella mia directory home in ubuntu. Sto ottenendo un'eccezione di array fuori limite. Ecco il codice:Come impostare la directory di lavoro con ProcessBuilder

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

Qui è l'eccezione:

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 

risposta

60

Si sta tentando di eseguire/home e non è un file eseguibile. L'argomento constructor del generatore di processi è il comando da eseguire.

Si desidera impostare la directory di lavoro. Puoi farlo tramite il metodo directory.

Ecco un esempio completo:

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

Ok, grazie. Ho appena modificato la domanda perché ho realizzato l'errore che ho fatto. Penso che tu abbia risposto anche alla mia altra domanda – Eric

Problemi correlati