Compilar java com gcc

Aloha

alguem ae já usou o gcc pra compilar java e gerar bytecodes?
é confiável?
tem q instalar sdk’s ou algo do tipo?

valew!

Bem para gerar código nativo utiliza-se o gcj…não precisa instalar JDK não mas também teus códigos não são portaveis para outra plataforma (" ou até mesmo para outro processador ") já que o mesmo ultiliza recursos nativos do SO… vou te dar um exemplo ela não é 100% e até mesmo o swing “Até onde eu saiba não existe pois a mesma ultiliza gtk”

Confiavel eu não sei uso o linux cerca de 1 ano… mas prefiro usar o JDK … deseinstalo todos os pacotes GCJ já na instalação do SO…

gcj produz resultados muito discrepantes, as vezes gera código muito superior ao sun JVM outras vezes toma 1 coro.
Gera codigo pior se deve ao fato que o gcj só faz analise estática do código enquanto a HotSpot faz 1 mistura de profiling e otimização especulativa/pessimisação.
GCJ gera código melhor que 1 jvm quando o programa possuir muitas funções estaticas ou final, pro gcj isso faz difierença, ou normalmente quando a função é muito grande.

GCJ possui alguns problemas, primeiro que precisa usar o gnu classpath, uma implementação da gnu das classes do j2se, que é pior e incompleta em relação a versão da sun, não sei se tem como usar o rt da sun. Outro problema é que o programa gerado não suporta dynamic class loading, ou seja, não rola compilar seu tomcat. Isso foi a algum tempo já…

A grande vantagem é que o warm-up do programa compilado pra código nativo é show, vc nem lembra que se trata de java.

Não recomento usar com programas que aloquem muita memoria, pq o GC do GCJ é fraco.

Pessoalmente eu acho que querer compilar java pra código nativo é a mesma coisa que usar 1 VM para C.

Pode ser que alguns problemas do gcj tenham melhorado, a ultima vez que testei foi na versão 3.0 do gcc.

O GCJ tá progredindo bastante, sim, louds, e se não me engano o pessoal já implementou dynamic class loading e hoje acho que já dá pra compilar o tomcat numa boa. Se não me engano, até o Eclipse dá, mas, como vc mesmo disse, o Garbage Collector do GCJ não é lá aquela maravilha perto dos que vem nas JVMs por aí.

Mas, respondendo à pergunta inicial, o GCJ gera bytecodes (.class), funcionando como um javac ou jikes da vida, e acho que essa parte está bem resolvida nele. O problema continua sendo o GNU Classpath, que não é lá essas coisas (reimplementar toda a API do Java é uma idéia tão absurda que pode até dar certo um dia, mas esse dia ainda tá meio longe, IMHO :))

O maior problema do pessoal da gnu é o fato que todo software ali tem que ser [L]GPL. Senão eles poderiam utilizar o GC da ORP que é show de bola. Sou a favor que OSS seja GPL ou LGPL, mas por isso deixar de usar outro só por não ter uma dessas licensas é fanatísmo.

o GCJ gera codigo nativo só para o linux ou gera tb para o windows?

cv escrevendo com acentos? Uia… :mrgreen:

em 2003… na epoca que eu ainda tinha saco de configurar teclado :mrgreen:

O GCJ é apenas um front-end do GCC, então é possivel gerar binarios para todos backends suportados. O grande limitador costuma ser a libgcj.

vc poderia me indicar algum texto para ler sobre como instalar e configurar esse compilador para gerar codigo nativo para o windows. valeu

gcc.gnu.org