Je continue mes expériences avec la JVM sur Raspberry Pi : attaquons-nous au JDK 8.
Vous pouvez télécharger le « JDK 8 (with JavaFX) for ARM Early Access » à l’adresse suivante : http://jdk8.java.net/fxarmpreview/
Update : Un nouveau build est disponible ici : http://jdk8.java.net/download.html
Dézippez le tar.gz obtenu dans le répertoire de votre choix. Exemple :
cd lerepertoiredemonchoix tar zxvf jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
Ensuite, une solution simple pour utiliser la VM est de faire pointer la variable d’environnement JAVA_HOME sur ce répertoire et d’ajouter le chemin $JAVA_HOME/bin à la variable PATH.
Mais on peut mieux faire : utiliser jenv
Jenv
Jenv va nous permettre de gérer plusieurs environnements d’exécution Java en fonction du répertoire d’où la JVM est lancée.
Pour l’installer, il suffit de suivre les instructions du site :
$ git clone https://github.com/hikage/jenv.git ~/.jenv $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile $ exec $SHELL -l
Il faut maintenant paramétrer les JVMs disponibles, ex :
$ jenv add /usr/lib/jvm/java-7-openjdk openjdk32-1.7.0.17 added $ jenv add /path/to/jdk1.8.0 oracle32-1.8.0-ea added
Reste maintenant à définir les JDKs à utiliser en fonction du répertoire.
Tout d’abord, définissons le JDK global :
$ jenv global oracle32-1.8.0-ea
Autant utiliser le JDK 1.8 partout (si on peut ainsi envoyer des rapports de bugs et s’assurer de la compatibilité de nos applications, c’est toujours ça de pris !).
Pour les applications nécessitant java 7, pas de problèmes :
$ cd uneapplicationjava7 $ jenv local openjdk32-1.7.0.17
Bon, on teste ?
En global :
$ cd $ java -version java version "1.8.0-ea" Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e) Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode)
et en local :
$ cd uneapplicationjava7 $ java -version java version "1.7.0_17" OpenJDK Runtime Environment (IcedTea7 2.3.8) (ArchLinux build 7.u17_2.3.8-1-arm) OpenJDK Zero VM (build 22.0-b10, mixed mode)
Et voilà, vous avez un java 8 utilisable à côté de votre java 7.
Note: Si vous obtenez une erreur « java: No such file or directory » à l’exécution de « java -version », exécutez la commande suivante en root :
ln /lib/ld-linux.so.3 /lib/ld-linux-armhf.so.3