Java - Ejecutar programa como linea de comandos

 
Vista:

Ejecutar programa como linea de comandos

Publicado por Fibus (1 intervención) el 24/01/2006 09:40:01
Os cuento: tengo un programa llamado "ffmpeg" que funciona con línea de comandos.
Lo uso para sacar frames de un video con formato MPEG4.
Desde la consola de windows tecleo lo siguiente:
c:\Ffmpeg\ffmpeg -i demomp4.mp4 -vframes 1 demomp4%d.png

Os detallo las opciones de entrada:
-i input file -----------------> le digo como se llama el video
-vframes 1 -----------------> para que me extraiga un solo frame
-demomp4%d.png ---------> nombre del frame

Le doy y..... funciona!!!!!!

Bien. Ahora quiero que esto mismo que hago yo con la consola, me lo haga un programa java. Debería ser tan facil como lo siguiente:

***********************************************************************************
package javipruebas;

import java.io.*;

public class prueba {
public static void main(String[] args) throws IOException {

String TomaFrame = "C:\\Ffmpeg\\ffmpeg -i demomp4.mp4 -vframes 1 demomp4%d.png";

try {
Runtime run= Runtime.getRuntime();
System.out.println(comando);
Process pp = run.exec(comando);

// Para ver la salida que me da al ejecutar el programa
BufferedReader in =new BufferedReader(new InputStreamReader(pp.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}}

***********************************************************************************

Bueno, pues lo ejecuto, y.... nada. No hace absolutamente nada.
Lo mismo que ejecuto desde la consola de windows que funciona, con
java no funciona.
¿Qué ocurre?
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
sin imagen de perfil

RE:Ejecutar programa como linea de comandos

Publicado por chuidiang (950 intervenciones) el 24/01/2006 17:02:02
Hola:

Pueden ser varias cosas.
Es posible que al arrancar desde java haya alguna variable de entorno que no se pase al programa. Java no tiene acceso a las variables de entorno del sistema. Deberías comprobarlo.

Otra opción es el directorio actual en el que corre java. El fichero mp4 no lleva path, así que supongo que lo busca en el directorio actual en el que corre java. Si lo estás ejecutando desde un IDE, este directorio puede ser bien raro. System.getProperty("user.dir") te devuelve el directorio de ejecucion.

Intenta obtener también el ErrorStream de Process, así si hay algún error en la ejecución del programa, podrás verlo.

Se bueno.
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