Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas al ejecutar comando

Estas en el tema de Problemas al ejecutar comando en el foro de Java en Foros del Web. Hola Necesito implementar una opción en mi aplicación para realizar una salva de una base de datos de postgresql. Para esto estoy usando el cliente ...
  #1 (permalink)  
Antiguo 15/05/2012, 08:17
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Problemas al ejecutar comando

Hola

Necesito implementar una opción en mi aplicación para realizar una salva de una base de datos de postgresql.

Para esto estoy usando el cliente pg_dump de postgres, pero al ejecutar el comando:

C:\Program Files (x86)\PostgreSQL\9.0\bin\pg_dump -p 5432 -U postgres -Fc foresta >D:\xdfdf.dump

me devuelve el siguiente error en la consola:
pg_dump: demasiados argumentos en la línea de órdenes (el primero es «>D:\xdfdf.dump»)

El comando está bien, ya que al ejecutarlo desde el símbolo del sistema se crea bien el fichero de la salva.

Lo raro es que si he logrado restaurar una base de datos usando el cliente pg_restore de postgres, y el comando se ejecuta perfectamente desde mi programa en Java.

Para ejecutar los comandos estoy usando el siguiente método:

public static int ExecuteProgram(String command) throws IOException, InterruptedException
{
String line;

int _exit_value=1;
try
{
Process proc=Runtime.getRuntime().exec(command);

//Obtener la salida estandar de errores y guardarlos en una lista
InputStream error_stream=proc.getErrorStream();
BufferedReader br = new BufferedReader (new InputStreamReader(error_stream));
saveStringToFile("gvSIG\\extensiones\\org.geocuba. foresta\\data\\command.log", "", false);
while ((line=br.readLine())!=null)
{
System.out.println(line);
saveStringToFile("gvSIG\\extensiones\\org.geocuba. foresta\\data\\command.log", line, true);
//errores.add(line);
}

//Esperar a que termine el proceso
proc.waitFor();

_exit_value=proc.exitValue();
}
catch(IOException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Error "+e.getMessage());
}

return _exit_value;
}


Gracias de antemano por su tiempo

Saludos, RayCast.
  #2 (permalink)  
Antiguo 15/05/2012, 13:58
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problemas al ejecutar comando

Hola:

Cuando ejecutas un comando del sistema desde java, su salida por standardout no sale a pantalla y no puedes redirigirla a un fichero. El "comando > D:\xdfdf.dump" funciona bien desde línea de comandos, pero no funcionará desde java porque nada se redirigirá a ese fichero.

La salida del comando la tendrás, igual que la de errores en getErrorStream(), en el process.getInputStream(). Tienes que ir leyendo de ahí y guardando en un fichero. Como también tienes que leer simultáneamente del getErrorStream(), tendrás que o bien ignorar el getErrorStream(), o bien lanzar un hilo para leer uno de ellos mientras el hilo principal lee el otro.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: comando, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:59.