Désintaller les versions précédentes ainsi que les autres compilateurs et machines virtuelles Java (jdk, kaffe, guavac) qui pourraient interférer avec le JdK.
Avec les distributions RedHat 4.2 et 5.0, il est nécessaire de supprimer les packages guavac, kaffe et bissawt (avec glint, chercher dans le répertoire développement/langages, avec rpm on pourra faire rpm -e guavac kaffe bissawt), avec la 5.1 bissawt est inclus dans le package kaffe.
Dézipper l'archive dans le répertoire /usr/local/.
Il faut maintenant inclure le répertoire des binaires du jdk dans le path. On peut le faire en incluant les lignes suivantes dans le fichier .bash_profile de votre répertoire :
Il peut être trés utile de définir la variable CLASSPATH par la ligne suivante dans le .bash_profile :
La doc indique que ce n'est pas nécessaire, mais mon expérience personnelle me pousse à penser le contraire (en particulier lorsqu'on doit utiliser le paramétre -classpath avec l'appel à java).
Il existe deux versions du JdK : pour libc5 & glibc. J'ai rencontré des problèmes avec la glibc (même aprés avoir mis à jour mes bibliothèques) version 2, je recommande donc la libc5. Cependant, il est sorti une version 4, à tester.
Pour installer JDE (que l'on pourra charger sur sunsite), il suffit de dézipper l'archive dans un répertoire de votre choix (par exemple /usr/local/jde-2.1.1). Il faut ensuite indiquer à Emacs le chemin de ces fonctions dans le fichier .emacs de votre répertoire par ces lignes :
Voila, c'est installé. Lorsqu'on charge dans Emacs un fichier .java, un nouveau menu JDE apparaît.
Lire attentivement la documentation (README.linux), en particulier pour ce qui concerne la variable d'environnement NS_JAVA et DYN_JAVA, afin d'apprendre comment réduire les exigences et accélérer le JDK.
Ajouter au /etc/ld.so.conf une ligne "/usr/local/java/lib/i586/green_threads" puis invoquer ldconfig.
La variable d'environnement CLASSPATH doit au moins contenir /usr/local/java/src. Pour cela ajouter une ligne CLASSPATH=.:/usr/local/java/src à /etc/profile.
En cas de message d'erreur "No library path set" utiliser la
commande "which javac" ou bien "type -path javac"
pour déterminer quel binaire est invoqué afin de vérifier qu'il correspond
à ce qui a été installé et n'est donc pas un reliquat de version plus
ancienne. Vérifier que seul le plus récent JDK est installé
(Red Hat : "rpm -qa | grep -i 'java\|jdk'").
Si l'appletviewer ne fonctionne pas décompacter sur place le /usr/local/java/lib/classes.zip. En cas de problème persistant examiner le contenu de la varaible d'environnement $CLASSPATH afin de vérifier que, notamment, les classes de guavac n'intérfèrent pas.
Réinstaller après avoir désinstallé tout ce que votre distribution a mis en place : le JDK, kaffe, guavac ...
Pour exécuter des fichiers .class directement à partir de la ligne de commande il faut compiler le "support" Java dans le noyau (lire /usr/src/linux/Documentation/java.txt) et rendre ces fichiers exécutables : chmod +x nom_du_fichier.class
Essayer aussi (recommandé !) CompilExec, code Java grâce auquel compilation et exécution n'exigent pas de rechargement de la JVM (auteur : C. Blaess)
Infos issues de java-linux :
Si le JNI ne fonctionne pas ou si le JDK ne semble jamais restituer la mémoire allouée récupérer la libjava mise à jour.
En cas d'erreur Out of memory, exiting s'assurer que la machine dispose de mémoire virtuelle (« swap »), par exemple grâce à la commande free.
A. Parenteau note : Le JDK semble très sensible aux bibliothèques qu'il utilise. Je te conseille de mettre dans ton /etc/ld.so.conf em première ligne /usr/local/jdk/lib/Linux/green_thread et de faire un /sbin/ldconfig -v.
C. Jolif ajoute : Par défaut le jdk sous linux alloue quand meme pas mal de mémoire si elle n'est pas dispo en RAM+swap cela provoque cette erreur. Pour changer la mémoire allouée par défaut : dans les script se trouvant dans jdk/bin/.... changer les options -msXm passée à java pour mettre un X moins important (8 à la place de 16 par exemple).
Avec le JDK 1.1.5 : mettre à jour ld.so et la libc.
D. Rio note :
C'est un probleme que j'ai rencontré avec le portage de Sergey Nikitin
(lagrange.la.asu.edu). En utilisant le portage de Steve Byrne ça marchait
mieux.
É. Jacoboni note :
Essayer de désinstaller guavac.
De nombreux
outils existent !
Conseil : examiner le constructeur
graphique de Kawa, et Supercede.