2011-12-06 27 views
25

Estoy intentando iniciar un proceso en mi directorio personal en ubuntu. Estoy obteniendo una matriz fuera de límites. Aquí está el código:Cómo establecer el directorio de trabajo con ProcessBuilder

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

aquí es la excepción:

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 

Respuesta

60

Usted está tratando de ejecutar/home y no es un archivo ejecutable. El argumento constructor del creador del proceso es el comando a ejecutar.

Desea establecer el directorio de trabajo. Puede hacerlo a través del método directory.

Aquí es un ejemplo completo:

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

Ok, gracias. Acabo de editar la pregunta porque me di cuenta del error que cometí. Creo que es posible que también hayas respondido a mi otra pregunta – Eric

Cuestiones relacionadas