Utilisez certaines versions de JRE / JDK pour certains programmes

Jutilise ArchLinux et un IDE appelé PyCharm. Sur sa page de téléchargement , il recommande dutiliser Java 6 au lieu dOpenJDK. ArchLinux a un package OpenJDK (jdk7-openjdk) que jai installé, installé et daprès ce que javais lu dans le Arch Wiki sur Java , il devrait être possible dinstaller Oracle Java 6 aux côtés dOpenJDK 7 via des packages appelés jdk6-compat et jre6-compat, qui installent ces versions de Java dans /opt/ au lieu de lemplacement normal.

Cependant, après linstallation de jdk6-compat et jre6-compat, je vois toujours que jexécute OpenJDK 7 lorsque jexécute ce qui suit:

% java -version java version "1.7.0_09" OpenJDK Runtime Environment (IcedTea7 2.3.3) (ArchLinux build 7.u9_2.3.3-1-x86_64) OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode) 

… même après avoir défini JAVA_HOME et ajouté /opt/java6/bin à mon PATH dans mon .zshrc.

Comment puis-je faire en sorte que PyCharm (ou dautres applications) utilise Oracle Java 6 au lieu dOpenJDK?

Merci et excuses si jai posté au mauvais endroit.

Autres informations qui pourraient être utiles:

  • Utiliser Gnome 3 comme DE

Répondre

Si je souhaite utiliser une version différente de Java Je fais deux choses:

  • Tout dabord, définissez JAVA_HOME comme approprié pour cette installation de Java et exportez-le.
  • Ensuite, mettez à jour mon chemin avec `PATH = $ {JAVA_HOME} / bin: $ {PATH}.

En raison de la façon dont PATH est recherché, si vous ajoutez à la fin du chemin, la nouvelle version ne sera pas utilisée. Tout ce qui est ajouté à la fin du chemin najoute que de nouvelles commandes, il ne remplace pas les commandes existantes. Si vous préférez la variable PATH, vous utiliserez la commande dans le nouveau répertoire de préférence à une autre commande.

Des commandes comme java impliquent souvent un certain nombre de liens symboliques avant darriver au programme. Lutilisation de ${JAVA_HOME}/bin contourne toutes les indirections et fournit un chemin direct vers les différentes commandes liées à Java.

EDIT: Si vous souhaitez exécuter uniquement certains programmes avec une version différente de Java, vous pouvez utiliser un wrapper comme celui-ci:

#!/bin/bash # javawrapper - replace Java for a command. export JAVA_HOME=$1; shift PATH=${JAVA_HOME}/bin:$PATH $* 

Vous pouvez alors appeler le wrapper avec une commande comme.

javawrapper /opt/java6 PyCharm 

Vous pouvez également ajouter un alias à votre fichier ~/.bashrc comme ceci

alias PyCharm="javawrapper /opt/java6 PyCharm" 

Commentaires

  • Eh bien, cela résout la moitié du problème; Jajoutais à la fin, plutôt quau début de $PATH. Mais comment exécuter uniquement la version différente de Java pour certaines applications?
  • Jai ' mis à jour ma réponse. Cependant, dans un cas comme le vôtre, jai rarement besoin de conserver les programmes utilisant la version Java par défaut.

Réponse

ArchLinux garde les différents JDK dans le répertoire / usr / lib / jvm, changer le JDK par défaut est une question de modifier les liens symboliques là-bas:

# ls -al /usr/lib/jvm lrwxrwxrwx 1 root root 14 May 31 19:58 default -> java-8-openjdk lrwxrwxrwx 1 root root 18 May 31 19:58 default-runtime -> java-8-openjdk/jre drwxr-xr-x 7 root root 4096 May 27 21:45 java-10-openjdk drwxr-xr-x 6 root root 4096 May 31 14:35 java-8-openjdk drwxr-xr-x 7 root root 4096 May 31 19:56 java-9-openjdk 

Arch a un script spécial pour cela:

# archlinux-java set java-10-openjdk 

et vous obtenez:

# java -version openjdk version "10.0.1" 2018-04-17 OpenJDK Runtime Environment (build 10.0.1+10) OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode) 

vous pouvez également utiliser les options « fix » et « status »:

# archlinux-java fix # archlinux-java status Available Java environments: java-10-openjdk (default) java-8-openjdk java-9-openjdk 

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *