Runtime exec con & en los parametros

jorge
25 de Febrero del 2005
Buenas, me estoy volviendo loco con un pequeño problema que debe ser muy sencillito de resolver y no encuentro la solucion:
Quiero abrir desde una aplicación Java la web:
https:/www.coco.es?a=1&b=2
para ello hago:
String comando="cmd /c start iexplore https://www.coco.es?a=1&b=2&c=4";
Runtime.getRuntime().exec(comando);

Al ejecutar, se abre el iexplorer pero sólo pilla https://www.coco.es?a=1 (lo demás no aparece).
Es como si hubiera interpretado el & de alguna forma y pasa del resto.
¿Qué tendría que hacer para que lo pillara correctamente?
Muchas gracias por adelantado.

pepe
25 de Febrero del 2005
Solución 1:
================
Debes poner al dirección html entre comillas, para que se tome como un único parámetro y no el comienzo de otro.
Ejemplo:
"cmd /c start iexplore \"https://www.coco.es?a=1&b=2&c=4\""
NOTA: el \" es para "escapar" el carácter ".

Solución 2 (la que más me gusta):
==============================
pasarle al Runtime.getRuntime().exec() no un string, sino un array de String:
String cmdArray[] = new String[4]
cmdArray[0] = "cmd";
cmdArray[1] = "/C";
cmdArray[2] = "iexplorer";
cmdArray[3] = "https://www.coco.es?a=1&b=2&c=4";
Runtime.getRuntime().exec(cmdArray);

pepe
25 de Febrero del 2005
Lo vuelvo a enviar, se han insertado caracteres '\' incorrectos
Solución 1:
================
Debes poner al dirección html entre comillas, para que se tome como un único parámetro y no el comienzo de otro.
Ejemplo:
"cmd /c start iexplore "https://www.coco.es?a=1&b=2&c=4""
NOTA: el " es para "escapar" el carácter ".

Solución 2 (la que más me gusta):
==============================
pasarle al Runtime.getRuntime().exec() no un string, sino un array de String:
String cmdArray[] = new String[4]
cmdArray[0] = "cmd";
cmdArray[1] = "/C";
cmdArray[2] = "iexplorer";
cmdArray[3] = "https://www.coco.es?a=1&b=2&c=4";
Runtime.getRuntime().exec(cmdArray);