Compilar java desde ejecutable java!!!

israel
13 de Mayo del 2003
Hola querria poder compilar un archivo java desde una aplicacion java, usando la clase process, pero no consigo lo deseado. Asi es como lo tengo definido:
void jMenuItem8_actionPerformed(ActionEvent e) {
Runtime r=Runtime.getRuntime();
Process p=null;
String comando="E:\proyecto\JBuilder\jdk1.3.1\bin\javac.exe "+ currFileName;
try{
p=r.exec(comando);
}catch(Exception az){
System.out.println("Error al compilar el fichero: "+currFileName);
}
}

Y lo que me saca es la pantalla de msdos, pero sin ningun resultado, alguien me podria echar una manita plz????

javaelhutt
13 de Mayo del 2003
Una vez obtenido el proceso debes darle tiempo al hilo actual para que ejecute el comando.

p.waitFor();
// Esto hace que el Thread que está ejecutándose
// invoque a javac.exe y espere hasta que este
// haya terminado.

¿Cuál es el hilo que se está ejecutando? Generalmente es main, que se ejecuta en forma de hilo.

Un saludo.

israel
13 de Mayo del 2003
Muchas gracias, eso hizo que me compilara y ejecutara, lo que pasa que ahora tengo otro problema y es que no veo los resultados, es decir: estoy compilando el hola mundo, el mas sencillo con la instruccion System.out.printl("Hola mundo"); y no veo que al ejecutar ponga en la pantalla de msdos hola mundo, se queda en negro y la pantalla se cierra, como puedo hacer para que se vean los resultados???

Un saludo.

Luismahou
13 de Mayo del 2003
Del objeto Process puedes cojer un InputStream en el que el programa escribe los errores (process.getErrorStream()). Si la ejecución del javac.exe produce errores, los escribirá en este inputStream. Simplemente lo tienes que leer para ver que errores dá. También hay un process.getOutputStream(), y un process.getInputStream().

Saludos, Luismahou