Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema con Scapes para ejecutar Parametros en el Terminal

Tengo el siguiente Problema
cuando aplico este comando

comando = "/bin/bash -c /Applications/Adobe\\ After\\ Effects\\ CS6/aerender -project /Users/jhonatan/Desktop/Daniel/Aplicacion/Original/original.aepx -comp 'Comp 1' -output /Users/jhonatan/Desktop/Daniel/Aplicacion/_rendersFinales/Copia.mp4";

Sale este error
Creo que son los scapes alguien puede ayudarme, de antemano Gracias.
After\: line 2: /Applications/Adobe: is a directory

octubre 2, 2013 | Unregistered CommenterDaniel

Guenas.

¿Para que quieres poner la barra \?
Si el comando es aerender no entiendo que pongas la barra invertida.
Seguro que lo he entendido mal.

Un saludo

octubre 2, 2013 | Unregistered CommenterPaposo

Buenos dias esta barra \ invoca un render desde Terminal en Java, inicialmente lo estube haciendo en php y renderiza a la perfeccion te muestro el codigo, gracias por contestar

$output = shell_exec("/Applications/Adobe\ After\ Effects\ CS6/aerender -project /Applications/XAMPP/xamppfiles/htdocs/CarpetasPhp/" . $Id . "/original.aepx -comp 'Comp 1' -output /Applications/XAMPP/xamppfiles/htdocs/CarpetasPhp/_rendersFinales/" . $Id . ".mp4");

este comando inmediatamente genera un archivo mp4
desde php, al intentar pasar este programa que me ejecute el terminal con estos comandos proporcionados por aerender no corre.

octubre 2, 2013 | Unregistered CommenterDaniel

Cordial saludo en php son espacios en blanco pero en java no se como interpretar los espacios en blando del nombre del directorio

octubre 2, 2013 | Unregistered CommenterDaniel

Guenas.

Ya entiendo. No veía los espacios en blanco.
En java no tienes necesidad de escapar los espacios en blanco del nombre de los directorios.

Trata de usar ProcessBuilder.
Te pongo un ejemplo que en W7 ejecuta un fichero batch llamado ppp.cmd dentro de un directorio que contiene espacios.

ProcessBuilder pb=new ProcessBuilder("cmd.exe","/c ppp.cmd");
File dir=new File("c:\\Pruebas de proceso");
System.out.println("Directorio correcto? "+dir.exists());
pb.directory(dir);
try {
pb.start();
} catch (IOException ex) {
ex.printStackTrace();
}

Un saludo

octubre 3, 2013 | Unregistered CommenterPaposo

Guenas.

Perdon. Me cole.
He probado mi propio código y aunque el directorio lo da por bueno la ejecución falla.

Mirare a ver que pasa.

Un saludo

octubre 3, 2013 | Unregistered CommenterPaposo

Guenas de nuevo.

Si que funciona.
Me cole al escribir el nombre del cmd en la prueba que hice.
Otra cosa, quiza te resulte conveniente hacerlo asi:

ProcessBuilder pb=new ProcessBuilder("cmd.exe","/c ppp.cmd");
File dir=new File("c:\\Pruebas de proceso");
System.out.println("Directorio correcto? "+dir.exists());
pb.directory(dir);
try {
Process p=pb.start();
p.waitFor();
} catch (Exception ex) {
ex.printStackTrace();
}

De esta forma el Thread se parara esperando a que termine el proceso que has arrancado.

Un saludo

octubre 3, 2013 | Unregistered CommenterPaposo

Excelente por esa, Muchas gracias por tu interes y tus respuestas, me quedo probando la del final cambiare cmd por bash, muchas gracias

octubre 3, 2013 | Unregistered CommenterDaniel