Proceso externo que crea archivo
Publicado por Ernesto (2 intervenciones) el 31/03/2009 18:22:25
Tengo una aplicacion en java que lanza un programa que crea un archivo y vuelca en él un contenido. (Serái así : c:\xml tr c:\osmarender.xsl osm-map-features-z17.xml >map.svg )
Para hacerlo más facil, he creado yo el archivo y he intentado volcar la salida del lanzamiento sobre el archivo, el código es el siguiente:
String aux1="c:\xml tr c:\osmarender.xsl osm-map-features-z17.xml";
Process p1 = Runtime.getRuntime().exec(aux1);
InputStream is1=p1.getInputStream();
OutputStream out = new FileOutputStream("map.svg");
byte[] buffer = new byte[256];
while (true) {
int n = is1.read(buffer);
if (n < 1) {
break;
}
out.write(buffer, 0, n);
}
is1.close();
out.close();
Cuando lo ejecuto se queda parado en el read. En windows miro el admin de tareas y veo que el proceso que he lanzado se queda parado, con 0% de cpu.... Cuando paro la aplicacion en java el programa deja de estar parado y sigue la ejecucion normal..
Creo que porque no soy capaz de vaciar correctamente los buffer de java y volcarlos sobre el archivo creado.
Alguien tiene alguna idea de por que es?? Gracias!
Para hacerlo más facil, he creado yo el archivo y he intentado volcar la salida del lanzamiento sobre el archivo, el código es el siguiente:
String aux1="c:\xml tr c:\osmarender.xsl osm-map-features-z17.xml";
Process p1 = Runtime.getRuntime().exec(aux1);
InputStream is1=p1.getInputStream();
OutputStream out = new FileOutputStream("map.svg");
byte[] buffer = new byte[256];
while (true) {
int n = is1.read(buffer);
if (n < 1) {
break;
}
out.write(buffer, 0, n);
}
is1.close();
out.close();
Cuando lo ejecuto se queda parado en el read. En windows miro el admin de tareas y veo que el proceso que he lanzado se queda parado, con 0% de cpu.... Cuando paro la aplicacion en java el programa deja de estar parado y sigue la ejecucion normal..
Creo que porque no soy capaz de vaciar correctamente los buffer de java y volcarlos sobre el archivo creado.
Alguien tiene alguna idea de por que es?? Gracias!
Valora esta pregunta


0