Como compilar uma classe?

10 respostas
Mikhas

Hey galera!

Gostaria de saber como faço para compilar um .java e obter um .class atravéz de uma programa java?

Grato

10 Respostas

Felagund

System.getRuntime().exec(“cmd javac Arquivo.java”);

isso parece meio locura mas enfim.

tamoliveira

Amigo,

Recomendo para você o livro Use a Cabeça ! Java

Estude nele, vc sentirá a diferença.

Mikhas

Felagund:
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

pmlm

Mikhas:

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

Então deves criar o Arquivo.java e depois usar o com.sun.tools.javac.Main.compile()

Mikhas

Não posso criar o arquivo.java pois vou estar em um ambiente onde não posso manipular arquivos no disco.

pmlm

Aposto que consegues gravar na directoria temporário do sistema operativo.

System.getProperty("java.io.tmpdir")
Mikhas

[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.

Marky.Vasconcelos

Voce pode usar o Javaassist também.

Ou ASM, mas ASM é um exagero de complicado pra fazer isso. ^^

Mikhas

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.

Marky.Vasconcelos

É possivel criar uma nova sim. Pena que nunca achei um bom tutorial dele na internet. Mas já fiz essas coisas.

Criado 13 de maio de 2009
Ultima resposta 15 de mai. de 2009
Respostas 10
Participantes 5