[eside-ghost] Problema al ejecutar comando externo en JAVA

Eneko chan enekochan en gmail.com
Dom Ago 27 20:45:16 CEST 2006


Siento el posible off-topic, pero como JAVA es multiplataforma pues tambien
vale para Linux no? ;)

La cuestion es que un amigo (para el proyecto fin de carrera) necesita
ejecutar un comando externo desde JAVA para ejecutar el menconder y el
mplayer. Es para hacer una pequeña GUI y codificar videos en MPEG4. El
problema es que el comando se ejecuta al cerrar la aplicacion JAVA y no
cuando hago la llamada. Parece que queda "encolada" la llamada. Pense que el
problema podria deberse a alguna cosa de los thread, asi que he creado un
hilo nuevo donde se ejecuta la llamada al comando pero sigue sin funcionar.

¿Alguna idea?

El codigo es este:

Programa principal:

public class Main {

  public static void main(String[] args) {
    String comando = new String(".\\mplayer.exe \"Ghost In The Shell.avi\
"");

    Ejecutar miEjecutor = new Ejecutar();
    miEjecutor.comandoAEjecutar(comando);

    Thread miThread = new Thread(miEjecutor);
    miThread.start();

    while(true); // Y me quedo aqui bloqueado para ver si la ventana del
mplayer aparece antes de cerrar mi programa
  }
}

Clase ejecutora:

public class Ejecutar implements Runnable {
  private String comando = new String("");
  private String[] comandoConArgumentos;

  public Ejecutar() {
  }

  public void comandoAEjecutar(String S) {
    comando = S;
  }

  public void run() {
    try {
      this.comandoConArgumentos = this.comando.split("\\s"); // Si los
argumentos tienen espacios hay que pasar el comando en un String[] y por eso
lo separo segun los espacios
      Process p = Runtime.getRuntime().exec(this.comandoConArgumentos);
    } catch(Exception e) {
      System.out.println(e);
    }
  }
}


-- 
Fotolog: http://www.fotolog.net/ceng
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20060827/923f511f/attachment.htm


Más información sobre la lista de distribución eside-ghost