Hey galera!
Gostaria de saber como faço para compilar um .java e obter um .class atravéz de uma programa java?
Grato
Hey galera!
Gostaria de saber como faço para compilar um .java e obter um .class atravéz de uma programa java?
Grato
System.getRuntime().exec(“cmd javac Arquivo.java”);
isso parece meio locura mas enfim.
Amigo,
Recomendo para você o livro Use a Cabeça ! Java
Estude nele, vc sentirá a diferença.
System.getRuntime().exec(“cmd javac Arquivo.java”);isso parece meio locura mas enfim.
O problema é que não vai existir um arquivo.java, se não eu poderia utilizar esse comandou ou até mesmo com.sun.tools.javac.Main.compile();
E eu preciso que como resultado me seja retornado o arquivo .class
O problema é que não vai existir um arquivo.java, se não eu poderia utilizar esse comandou ou até mesmocom.sun.tools.javac.Main.compile();
E eu preciso que como resultado me seja retornado o arquivo .class
Então deves criar o Arquivo.java e depois usar o com.sun.tools.javac.Main.compile()
Não posso criar o arquivo.java pois vou estar em um ambiente onde não posso manipular arquivos no disco.
Aposto que consegues gravar na directoria temporário do sistema operativo.
System.getProperty("java.io.tmpdir")
[quote=pmlm]Aposto que consegues gravar na directoria temporário do sistema operativo.
System.getProperty("java.io.tmpdir")
Vou testar isso.
A questão é que eu vou rodar isso no Google App Engine.
Ache tambem isso aqui:
javax.tools.ToolProvider.getSystemJavaCompiler().run(InputStream in, OutputStream out, OutputStream err, String... args);
Mas não testei ainda.
Voce pode usar o Javaassist também.
Ou ASM, mas ASM é um exagero de complicado pra fazer isso. ^^
Não achei no javassist nada referente a compilar uma classe inteira.
A unica coisa que eu vi la é que pode-se modificar, ou incluir metodos em classes ja caregadas.
É possivel criar uma nova sim. Pena que nunca achei um bom tutorial dele na internet. Mas já fiz essas coisas.