Java - Ejecutar un jar seguido

   
Vista:

Ejecutar un jar seguido

Publicado por Francisco (2 intervenciones) el 26/02/2008 20:11:05
Tengo un jar que recibe como parámetro un fichero, lo cambia y obtiene como salida ese fichero modificado. Si esto lo hago manualmente, con cada fichero que le paso al jar, la salida que obtengo es correcta. El problema, es que ese jar lo tengo que ejecutar muchas veces y de manera muy seguida, desde otra aplicación, con fciheros diferentes. En este caso, ocurre que en la mayoria de las ocasiones el jar se ejecuta correctamente, pero de vez en cuando, y no sé porque, el programa no procesa el fcihero que le paso, se que el jar se ejecuta, pero por motivos que desconozco, se corta enseguida el programa. He intentado incorporar thread, pero sigo teniendo el problema.

Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar un jar seguido

Publicado por Yamil Bracho (2072 intervenciones) el 26/02/2008 20:24:32
Tienes el metodo Runtime.getRuntime().exec();
Chequea tambiben
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un jar seguido

Publicado por Francisco (2 intervenciones) el 26/02/2008 20:36:24
Gracias por la respuesta, pero al jar no se le llama desde otro programa java, sino desde un script de linux, y me ocurre el problema que comento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un jar seguido

Publicado por Aitor Sanchez (4 intervenciones) el 27/02/2008 12:21:39
Hola Francisco,
por lo que dices deves de tener un .sh (por ejemplo ejecutor.sh) que hace una llamada al .jar asi $JAVAPATH/java -jar ...... verdad ?(lo pregunto por si las moscas :-D ).

Si ejecutas el sh, podias hacer una cosa para comprobar las veces que se ejecuta (o si se ejecuta simultaneamente, ya saves.. el multiproceso junto con el multithreading...) en el linux ps -ef | grep "nombre_usuario_que _lanza_el_sh" esto lo lanzas cuando se llame al programa, ¿por que te pido que hagas esto? pues es sencillo, por si el sh se llama várias veces de una vez, es decir, lo tienes ejecutandose 2 veces en un mismo instante, si asi es (y ademas el fichero que manipula siempre tiene el mismo nombre o en ese instante los 2 que lo estan usando tiene el mismo nombre) puede ser que te de problemas de acceso por que uno tiene cogido el archivo y el otro esta esperando a que este lo suelte para procesarlo, no se si me explico bien. Por mucho que trates el jar para que no sea multithreating la verdad es que UNIX o linux lanza tantas veces como le pidas un programa anque ya esté corriendo.
Bueno ves diciendo como va y te intentaré ayudar :-)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar