Ejecucion de Script de Shell mediante JAVA

Mi cerebro ya no da más!.. Estoy haciendo un programa en JAVA que ejecuta un script de shell para UNIX.
Este script recibe 4 parámetros $1, $2, $3, $4 . Todo va bien hasta que uno de mis parámetros($3), (que es un string), se envía con espacios, pues toma a cada palabra como otro argumento diferente. Este es mi código:
String Cadena = "/opt/Omni/utils/crea.sh "+ var1 + " " + var2 + " \"" + var3 + "\" " + var4 ;
Process proc = rt.exec(Cadena);
...
Yo necesito que $3 sea una cadena del tipo <"Aaa aaa aa aaa">, no solo <"Aaa>.
Hasta agreguè las comillas en JAVA, y no lo resolviò <" \"" + var3 + "\" " >
Se que es el código de JAVA porque si ejecuto el script desde la consola exactamente igual que como lo mando aquí, funciona a la perfección.
Ojala puedas ayudarme!
Respuesta
En este caso los espacios en blanco los debes sustituir por "_"
Porque la mauina virtual de java siempre te los tomara como otro parámetro más
ok
si tu propósito es el solucionar este detalle mediante código te recomiendo que establezcas un estándar para que puedas saber con sertesa asta cuando empiesa y termina otro valir por ejemplo
que sea "@@@" se unn identificador el cual sepas que lo que sige es un parámetro y termina asta que se tope con otro @@@
@@@parrametro 1@@@parametro 1 + 1@@@utimo parametro@@@
Muchas gracias experto!, sin embargo no hay forma de establecer identificador @@@. Lo he resuelto creando un archivo con la cadena "/opt/Omni/utils/crea.sh "+ var1 + " " + var2 + " \"" + var3 + "\" " + var4 ;
... y en mi java mando llamar a este archivo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas