compilar archivos .java desde otro .java
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!!!!
boton que lo haga, si alguien lo sabe, porfavor ayuda!!!!
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
¿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
