Ant e Jikes: não compila

4 respostas
Rafael_Afonso

Olá:

Estou compilando um projeto com o ANT. Desejo usar como compilador o jikes como compilador, ao invés do javac. Para isso, seguindo o que está no manual do ANT, escrevi a tarefa “javac” da seguinte forma:

<javac srcdir="${dir.source}"
           destdir="${dir.classes}"
           debug="${compiler.debug}"
           compiler="jikes"       <-- O que acrescentei
           ...
     >
</javac>

No meu ambiente (Win2000) tenho a variável JIKESPATH setada para o diretório do jikes, C:jikes-1.18. O diretório C:jikes-1.18 bin está no path.
Quando vou compilar, não consigo. O Ant exibe a seguinte mensagem:

Buildfile: C:
gmedicoprojetouild.xml
init:
compile:
     [copy] Copying 1 file to C:
gmedicoprojetoclasses
    [javac] Compiling 1 source file to C:
gmedicoprojetoclasses
BUILD FAILED
file:C:/rgmedico/projeto/build.xml:109: Error running jikes compiler
AntRunner completed run

Daí me vejo obrigado a compilar com o javac mesmo. Alguém pode me ajudar a ver o que está errado?

Grato.

4 Respostas

marciolx

A variável de ambiente JIKESPATH deve apontar para um rt.jar, por exemplo:

SET JIKESPATH=C:\ARQUIVOS DE PROGRAMAS\JAVA\JRE.1.4.0_01\lib\rt.jar

as outras classes do sistema você define normalmente no CLASSPATH

maxguzenski

qq esse jikes faz?

Rafael_Afonso

:arrow: maxguzenski:
O Jikes é um compilador Java feito pela IBM e Open Source. Como é feito em C++, ele acaba sendo mais rápido que o javac, que roda em cima do java (Alguém me confirma isso?). Na minha opinião ele também é mais inteligente.
:arrow: marciolx:
Sua dica funcionou, obrigado. :smiley: Entretanto dei uma olhada no manual do Jikes (RTFM! :oops: ). No finalzinho dele aparece uma referencia ao JIKESPATH. Está escrito que ele é equivalente ao CLASSPATH para o jikes. Na verdade é recomendado usar o CLASSPATH no lugar do JIKESPATH. Então escrevi o seguinte no meu CLASSPATH:

CLASSPATH=.; ... ;C:|ARQUIVOS DE PROGRAMAS|JAVA|JRE.1.4.0_01|lib|rt.jar

E eliminei a variável JIKESPATH. E daí rodou do mesmo jeito.

Grato,

marciolx

ok :smiley: e o jikes é BEM MAIS RÁPIDO que o javac e concordo com você, muito mais inteligente. Eu recomendo a quem está estudando para certificação compilar seus programas com o jikes, ele segue fiel à JLS (sem os bugs do javac) e as mensagens de erro são muito mais esclarecedoras.

Longa vida ao jikes :!: :wink:

Criado 20 de junho de 2003
Ultima resposta 20 de jun. de 2003
Respostas 4
Participantes 3