Java - CONSEJOS Y DUDAS EN LA ESTRUCTURA DE UN PROGRAMA

 
Vista:

CONSEJOS Y DUDAS EN LA ESTRUCTURA DE UN PROGRAMA

Publicado por Eduardo (19 intervenciones) el 20/06/2007 19:18:14
Estoy armando un programa que tiene la siguiente estructura :

PROGRAMA PRINCIPAL
EJECUTO COMANDO LINUX
EJECUTO PROGRAMA 1
EJECUTO PROGRAMA 2
EJECUTO PROGRAMA 3
EJECUTO PROGRAMA 4
EJECUTO COMANDO LINUX
FIN PROGRAMA

Cada uno de los PROGRAMAS X es un programa JAVA independiente, que realiza una tarea.
No requiere pasarle parámetros ni nada por el estilo

Aca es donde entran mis dudas... a estos programas conviene llamarlos mediante

new PROGRAMA1();
new PROGRAMA2();

o ejecutar el comando java PROGRAMA1 ejemplo

String[] command = {"sh","-c",java PROGRAMA1};
final Process process = Runtime.getRuntime().exec(command);

Por otro lado:
Como se puede lograr un buen manejo de los errores de forma que si cualquiera de los programas genere un error, se bloque el PROGRAMA PRINCIPAL y sepa que PROGRAMA X fue el que genero el error

ya que puedo tener internamente a cada PROGRAMA X un try {} catch(){}....
No me doy cuenta de que forma ademas de eso o independientemente me controle los errores de los PROGRAMAS X en el PROGRAMA PRINCIPAL...
Tener tipo un LOG o cuando el programa PRINCIPAL falle en cualquier de sus sub programitas... sepa que paso , ya que posiblemente esto me desancadene diferentes acciones dependiendo de que programa fallo

Muchas gracias !
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:CONSEJOS Y DUDAS EN LA ESTRUCTURA DE UN PROGRAM

Publicado por Himura (184 intervenciones) el 20/06/2007 21:03:21
Hola,

Maneja por cada programa que ejecutes un Thread.

Podrías utilizar cualquiera de las formas para ejecutar el programa, pero me parece que el Runtime es solo para ejecutables, eso tendrias que checarlo.

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

RE:CONSEJOS Y DUDAS EN LA ESTRUCTURA DE UN PROGRAM

Publicado por Eduardo (19 intervenciones) el 21/06/2007 12:56:06
El problema es que si debo de esperar a que cada programa finalize para que se ejecute el siguiente.
El Thread no permite que se vayan ejecutando medio en " paralelo " ?.

Por ejemplo el primer programa tomas varios archivos .txt, los parsea y deja un solo archivo .txt.
Otro toma otro tipo de archivo y hace lo mismo
Cada programa guarda sus resultados en otro directorio.

Otro programa toma el .txt resultado del primer proceso y lo sube a una base de datos
Otro programa toma el otro resultado y tambien lo sube.

Pero siempre se espera a que uno finalize para arrancar el otro..

Quizas halla alguna forma de concatenarlos.

Gracias
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:CONSEJOS Y DUDAS EN LA ESTRUCTURA DE UN PROGRAM

Publicado por Carlos Fajardo (8 intervenciones) el 22/06/2007 00:08:11
Desde el programa principal se puede iniciar los demás programas, pero el try y el catch solo lo utilizarias en este mismo, el principal.

En los demás programas puedes utilizar algo como el siguiente comando
new throw Exception("Soy el prog uno");
Y no capturarlo en el método propiamente,

La verdad no estpy muy seguro si se pueda realizar lo que digo, pero puedes probar.

Espero que sirva
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:CONSEJOS Y DUDAS EN LA ESTRUCTURA DE UN PROGRAM

Publicado por Eduardo (19 intervenciones) el 22/06/2007 13:59:22
Bueno al final lo hice asi.

int error=0;

try{
new programa1()
catch (Exception e1){
error=1
}
if (error==1){
no hago nada }
else{
try {
new programa2()
}
catch(Exception e1){
error=1;
}
if...
,..
.
.
.
.
y algunos programas tiene dentro throws IOException {

o throws Exception {

Aparentemente anda bien.. ahora estoy diseñando las posibles fallas que pueden tener cada programa para ver si todo anda ok.

Gracias
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