Uma das grandes reclamações dos Javeiros era a impossibilidade de geração de código nativo com o Javacão. Em alguns casos, principalmente em situações com recursos críticos, o código interpretado do java pode influenciar na confiabilidade da aplicação.
Muita gente não conhece o GCJ, o compilador primo do famoso GCC do Stallman. Ele é capaz de compilar o .java e transformá-lo em código nativo (para Linux/Solaris, inicialmente).
Pra quem quer testar, lá vai o código básico =]
(Peguei no site do GCJ e traduzi mal e porcamente)
1. Instale o GCC.
2. Crie um diretório de compilação
$ mkdir compile
3. Mova o gcc pro diretório de compilação.
$ cd compile
$ mv ../gcc-20001211.tar.gz .
$ gunzip *.gz
$ tar xfv *.tar
$ ln -s gcc-20001211 gcc
4. Diga ao build que você quer construir o libgcj
Dê uma olhada no configure.in (gcc/configure.in) e tenha certeza que a variável `noconfigdirs' não está atribuída a alguma coisa(como target-libjava or ${libgcj}.)
Também cheque por atribuições específicas de plataforma de `noconfigdirs' com
${libgcj}; se ${libgcj} está listado para sua plataforma, remova-a antes de configurar.
5. Compile e instale gcc/gcj/libgcj
$ cd compile
$ mkdir objdir
$ cd objdir
$ ../gcc/configure --enable-threads=posix --prefix=/home/joerg/gcc \
--enable-shared --enable-languages=c++,java \
--with-as=/opt/gnu/bin/as --with-ld=/opt/gnu/bin/ld
$ make bootstrap
$ make
$ make install
O Boehm GC é o coletor de utilizado por default.
Se você compilar no Linux você pode omitir as últimas duas opções. No Solaris, você vai precisar delas. Se você omitir '--prefix', o código compilado ficará em /usr/local.
6. Ajustando o ambiente
setenv PATH /home/joerg/gcc/bin:$PATH
setenv LD_LIBRARY_PATH /home/joerg/gcc/lib
7. HelloWorld.java
public class HelloWorld {
public static void main(String [] args) {
System.out.println("Hello");
}
}
8. Compilando HelloWorld
$ gcj --main=HelloWorld -o HelloWorld HelloWorld.java
9. Rodando HelloWorld
$ ./HelloWorld
E chubirú =D
Uma boa leitura sobre o GCJ (e em português) é um pdf/palestra do Fernando Lozano, onde ele explica algumas características do código e da própria linguagem Java.
Até mais o/
quinta-feira, 25 de outubro de 2007
Gerar código nativo em Java
Postado por Preco às 09:53 RT @perereco: Gerar código nativo em Java
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário