Faire cohabiter Ant 32bits avec Eclipse 64bits

Un petit billet en passant pour décrire un petit problème récent qui m'est arrivé avec ant sous mon eclipse et ou j'ai passé un petit moment à comprendre ce qu'il se passait.

En gros, si vous réussissez à compiler votre programme java avec ant en ligne de commande dans un terminal, et que vous effectuez cette même compilation avec ant intégré sous eclipse, et que vous ne voyez rien apparaître dans la console d'eclipse, pensez à vérifier les versions de JRE et JDK utilisé par eclipse, ainsi que celle de votre ant.

Dans mon cas, le problème provenait du fait qu'eclipse utilisait un JDK 1.6 par défaut en 64bits, alors que ma version de ant était en 32bits et que mon programme tournait d'ailleur avec une JVM 32bits.

Pour verifier chez vous, entrez la commande suivante:

 $ ant -diagnostics

et pour java, la commande:

 $ java -version

Vous devriez avoir pleins d'informations intéressantes sous cette forme:%%

- Ant diagnostics report -
Apache Ant version 1.6.5 compiled on June 2 2005

-
Implementation Version (JDK1.2+ only)
-
core tasks : 1.6.5
optional tasks : not available

---
System properties
---
java.runtime.name : Java(TM) 2 Runtime Environment, Standard Edition
sun.boot.library.path : /usr/java/jdk1.5.0_18/jre/lib/amd64
java.vm.version : 1.5.0_18-b02
ant.library.dir : /usr/share/ant/lib
java.vm.vendor : Sun Microsystems Inc.
java.vendor.url : http://java.sun.com/
path.separator : :
java.vm.name : Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg : sun.io
user.country : FR
sun.java.launcher : SUN_STANDARD
sun.os.patch.level : unknown
java.vm.specification.name : Java Virtual Machine Specification
user.dir : /home/ljames
java.runtime.version : 1.5.0_18-b02
java.awt.graphicsenv : sun.awt.X11GraphicsEnvironment
java.endorsed.dirs : /usr/java/jdk1.5.0_18/jre/lib/endorsed
os.arch : amd64
java.io.tmpdir : /tmp

java.vm.specification.vendor : Sun Microsystems Inc.
os.name : Linux
ant.home : /usr/share/ant
sun.jnu.encoding : UTF-8
java.library.path : /usr/java/jdk1.5.0_18/jre/lib/amd64/server:/usr/java/jdk1.5.0_18/jre/lib/amd64:/usr/java/jdk1.5.0_18/jre/../lib/amd64
java.specification.name : Java Platform API Specification
java.class.version : 49.0
sun.management.compiler : HotSpot 64-Bit Server Compiler
os.version : 2.6.27.24-170.2.68.fc10.x86_64

java.vm.specification.version : 1.0
sun.arch.data.model : 64
java.home : /usr/java/jdk1.5.0_18/jre
java.specification.vendor : Sun Microsystems Inc.
user.language : fr
java.vm.info : mixed mode
java.version : 1.5.0_18
java.ext.dirs : /usr/java/jdk1.5.0_18/jre/lib/ext
sun.boot.class.path : /usr/java/jdk1.5.0_18/jre/lib/rt.jar:/usr/java/jdk1.5.0_18/jre/lib/i18n.jar:/usr/java/jdk1.5.0_18/jre/lib/sunrsasign.jar:/usr/java/jdk1.5.0_18/jre/lib/jsse.jar:/usr/java/jdk1.5.0_18/jre/lib/jce.jar:/usr/java/jdk1.5.0_18/jre/lib/charsets.jar:/usr/java/jdk1.5.0_18/jre/classes

java version "1.6.0_0" OpenJDK Runtime Environment (IcedTea6 1.5) (fedora-18.b16.fc10-x86_64) OpenJDK 64-Bit Server VM (build 14.0-b15, mixed mode)

Pour résoudre ce problème de compatibilité, il suffit de dire à eclipse d'utiliser une version 32bits de la JVM :
Sous eclipse : menu windows->preferences
Partie Java -> compiler
Section Java Compliance: sélectionner 1.5 Compiler compliance level.

Preferences

Comme il est dit en bas de fenêtre:
"When selecting 1.5 compliance, make sure to have a compatible JRE installed and activated (currently 1.6)"

Ensuite aller sous partie Java -> Installed JREs et selectionner votre jdk en version 1.6x86_64 ou votre jdk1.5_18, l'important étant d'avoir un JDK compatible.

Installed-JREs

si ça peut servir à d'autres...

Vus : 599
Publié par StandarT : 56