Pregunta

Estoy teniendo problemas para ejecutar un script bash simple a partir de Java. Específicamente:

...

try{
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command);
pb.directory(new File(dir));
Process shell = pb.start();
int exitVal = shell.waitFor();

... donde 'comando' la ruta absoluta a un script bash que es ejecutable por todos y 'directorio' es el directorio de trabajo.

Cuando ejecuto mi programa me sale un código de salida 127 ( "command not found"). He intentado usar la clase de ejecución de Java y el método process.exec pero tampoco he trabajado para mí. ¿Alguna sugerencia?

¿Fue útil?

Solución

Si "comando" es una escritura del golpe, a continuación, en lugar de pasar "/ bin / bash" (y la errónea "c" que estás haciendo) a ProcessBuilder, sólo asegúrese de que comando es ejecutable (chmod + x comando), que la primera línea es #!/bin/bash, y luego pasar la ruta completa en ProcessBuilder.

Otros consejos

No se -c. Eso significa que el guión es el argumento a -C. Usted está de paso es una ruta de acceso, y no utiliza -c para eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top