Pour un développement normal, j'utilise la machine virtuelle 64 bits qui vient lorsque j'installe le kit de développement Java (OpenJDK) avec le gestionnaire de packages.
Mais il existe certaines applications Java (contenant des bibliothèques natives, je suppose) qui ne fonctionnent pas sur une machine virtuelle Java 64 bits. (On dirait que SoapUI est un tel candidat - dans les versions 4.0.1 et 4.5 beta 1, il échoue avec un défaut de segmentation s'il est exécuté sur une machine virtuelle 64 bits.)
J'ai essayé d'installer la version i386 de openjdk-6-jre en plus de la version 64 bits, mais cela est refusé par aptitude (en disant qu'elle est en conflit avec la version 64 bits existante). La même chose se produit si j'essaie d'installer openjdk-jre-7 dans la version 32 bits.
Une réponse à Puis-je exécuter une application Java 32 bits sur un système 64 bits proposé à installer ia32-sun-java6-bin
, mais il n'y a pas de package avec ce nom (ou quoi que ce soit avec ia32
et Java).
Que puis-je faire ici pour exécuter SoapUI sans basculer toute mon installation Java sur 32 bits?
Réponses:
C'est super facile d'avoir plusieurs versions de Java installées. Un peu plus difficile (lire: fastidieux) est de basculer entre les versions à un caprice.
tldr
apt-get one version
Décidez quelle version vous utiliserez principalement. Ou décidez lequel vous souhaitez avoir des mises à jour automatiques. Ou lancez une pièce, peu importe. Vous n'avez même pas besoin d'utiliser
apt-get
; il suffit de maintenir manuellement les deux packages sur votre système (voir la rubrique suivante).Le point est: il est plus facile d'utiliser le gestionnaire de paquets d'Ubuntu pour maintenir exactement une version d'un paquet comme java. Tu vas prendre soin du reste.
dégager l'autre
Téléchargez un tarball jdk. Extrayez-le
/opt
.basculer entre eux
Je laisse le gestionnaire de packages gérer mon installation principale. J'exporte des vars pour l'autre quand j'en ai besoin. Je travaille beaucoup sur la ligne de commande, c'est donc une bonne solution pour moi. Je m'embête avec:
De plus, je crée un lien symbolique
jdk/
->jdk1.6.0_3/
parce que je suis paresseux et que je n'aime pas reconfigurer mon .bashrc et d'autres scripts à chaque mise à niveau incrémentielle de jdk.Variables d'environnement qui pourraient vous intéresser:
la source
.deb
pour l'autre architecture au lieu de l'archive tar?Installation
Tout d'abord, téléchargez le dernier JDK 32 bits (pas JRE) de Sun. À l'époque, c'était jdk-6u7-linux-i586.bin pour moi.
Installez le paquet java:
Utilisez maintenant java-package pour construire un package .deb à partir du binaire que vous avez téléchargé. Vous devez le piéger dans la construction du package 32 bits:
Cela devrait générer un package .deb. Pour une raison quelconque, le nom du package a le suffixe _amd64. Installez le package:
Utilisez update-alternatives pour sélectionner le nouveau JDK. Il a été installé à /usr/lib/j2sdk1.6-sun pour moi.
Si vous exécutez java -version, vous devriez voir la bonne version:
Eclipse 32 bits
J'ai dû réinstaller la version 32 bits d'Eclipse (puisque SWT contient du code natif). J'ai également dû supprimer mon répertoire ~ / .eclipse ou Eclipse ne démarrerait pas (cela nécessite la réinstallation de nouvelles versions de tous les plugins). Enfin, ajoutez le nouveau JRE dans Java-> JRE installés à l'aide de l'emplacement d'installation (/usr/lib/j2sdk1.6-sun) et sélectionnez-le par défaut.
ref
la source
Ou vous pouvez uniquement installer ia32-libs
décompressez le x86 jre
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
et ajoutez à PATH si vous le souhaitez.
la source
ia32-libs
n'est pas la méthode recommandée à partir d'ubuntu-11.10. askubuntu.com/questions/107230/…