Ejecute el programa Java en otro programa [duplicado]

Posible duplicado:
Ejecutar otro jar en un programa Java

Intento ejecutar un archivo jar con una aplicación java desde dentro de otra aplicación java, pero no puedo hacer que funcione. mi codigo esta abajo

// run Jar in other java application
Runtime run=Runtime.getRuntime();           
run.exec("java -jar ManichemManagerRotas BatchProcess 8 2012");

Trato de correr manichemmanagerrotas.jar con tres argumentos.

puedo hacerlo con todos los métodos, pero no puede funcionar. El problema es que no se puede ejecutar la clase de método principal del archivo jar. Si tiene alguna idea de este problema, por favor, reprodúzcame.

intento ejecutar el archivo jar y el error es que: No se puede acceder al archivo jar ManichemManagerRotas

preguntado el 05 de septiembre de 12 a las 10:09

Intente agregar el ".jar" faltante y consuma la salida del proceso... Consulte las respuestas a continuación... -

Usted realmente necesita estar leyendo el artículo de Java World vinculado desde el Runtime.exec() información página antes de ir más lejos. -

5 Respuestas

Intenta agregar lo que falta .jar:

Runtime run=Runtime.getRuntime();            
run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012");

... y tienes que consumir la salida del proceso... Así:

InputStream in = run.getInputStream();
InputStream err = run.getErrorStream();

Respondido el 05 de Septiembre de 12 a las 11:09

Si desea invocar la clase/funciones java desde otro medio de clase, hágalo como jar y agregue el jar en la ruta de compilación de sus proyectos. En otra clase, crea un objeto de la clase Jared e invoca la función. (asegúrese de que su clase y función sean de acceso público)

Respondido el 05 de Septiembre de 12 a las 10:09

Puede ser que hayas olvidado escribir .jar

run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012"); 

Respondido el 05 de Septiembre de 12 a las 10:09

La Runtime.exec(...) métodos devuelve un java.lang.Process instancia. Solo llama a su getInputStream() método.

Process p = run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012");
InputStream is = p.getInputStream();

Respondido el 05 de Septiembre de 12 a las 11:09

Si solo desea escribir la salida en algún archivo sin modificarlo, puede agregar:

> somefile.txt

al final del 'comando':

run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012 > somefile.txt");

Respondido el 05 de Septiembre de 12 a las 11:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.