Quiero iniciar un navegador y cargar una página web utilizando el Runtime exec de Java. La llamada exacto es el siguiente:Java Runtime Exec en Windows falla con Unicode en Argumentos
String[] explorer = {"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE",
"-noframemerging",
"C:\\ ... path containing unicode chars ... \\Main.html"};
Runtime.getRuntime().exec(explorer);
En mi caso, la ruta contiene "\u65E5\u672C\u8A9E"
, los caracteres & # x65e5; & # x672c; & # x8a9e ;. Hay una solución viable que se pueda hacer solamente usando Java:
Al parecer es un error de Java: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4947220
Mi pregunta es? Parece que es posible escribir una biblioteca JNI para esto, pero me gustaría evitar eso si es posible. He intentado URI-codificación de la ruta como ascii y escribir los comandos en un archivo por lotes, sin éxito.
ProcessBuilder parece tener el mismo problema con unicode en su cadena de argumento de comando. Lamentablemente, no puedo traer una biblioteca externa para mi caso particular. – Bear
¿Qué le parece inicializar sus argumentos a las variables utilizando el método getPath() y usarlos en ProcessBuilder sin tocar ningún elemento que no sea unicode dentro del código fuente? – israkir
Apache Commons Exec usa internamente la API Runtime.exec(), igual tendrá el mismo problema que antes. – Renan