compilar archivos .java desde otro .java

mirtuft
15 de Marzo del 2005
quisiera que me ayudaran aon un inconveniente que tengo, es sobre como usar javac desde una JFrame para compilar otros .java, lo que intento es añadir un
boton que lo haga, si alguien lo sabe, porfavor ayuda!!!!

David
15 de Marzo del 2005
Hola

¿A que molaría invocar al compilador directamente sin exec ni nada de eso?

Hay clases de Sun no documentadas, como la com.sun.tools.javac.Main, que tiene dos métodos estáticos:

public static int compile(String[] args);
public static int compile(String[] args, PrintWriter out);

Los argumentos (args) son los mismos que recibe el compilador javac.exe. La segunda sobrecarga del método recibe como argumento adicional la salida donde se redirigen los diagnósticos de la compilación (System.out por defecto).

El valor de retorno es equivalente al valor de salida de javac.exe.

Así que para compilar:

String[] args = {"clase.java"};
int status = com.sun.tools.javac.Main.compile(args);

Un día de estos os mando un programilla muy curioso que ofrece meterle una sentencia o bloque de sentencias Java en una ventanica y las compila y ejecuta. Una pasada... Y utiliza esta clase que digo.


Salud

David

chuidiang
15 de Marzo del 2005
Hola:

Desde java puedes llamar a comandos del sistema. Para ello puedes usar algo como esto

Runtime.getRuntime.exec ("ejecutable.exe");

En tu caso podrías lanzar el compilador de java. Un ejemplo tonto serías asi

Runtime.getRuntime.exec ("javac clase.java");

Se bueno.