GNU/Linux >> Tutoriels Linux >  >> Linux

Trouvez JAVA_HOME et définissez-le sur RHEL

readlink La commande vous montrera le chemin complet du lien symbolique :

readlink -f `which java`

Le mieux que vous puissiez faire est d'éviter complètement le Java de Red Hat.

Obtenez votre java d'Oracle et mettez-le dans /opt. Ensuite, créez simplement le lien symbolique /opt/java -> /opt/jdk-someversion, et créez /etc/profile.d/java.sh contenant

#!/bin/sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH

Ensuite, pour changer Java à l'échelle du système, changez simplement le lien symbolique dans opt. Pour utiliser plusieurs versions de Java, utilisez des scripts comme ci-dessus avec JAVA_HOME approprié.

De plus, le script /sbin/service utilisé pour exécuter les scripts /etc/init.d arrachera les variables d'environnement - exécute env -i explicitement. Donc, c'est-à-dire que votre tomcat n'obtiendra pas JAVA_HOME, vous devrez créer setenv.sh dans $CATALINA_BASE/bin.

L'inconvénient de cette approche est que vous ne recevez pas les mises à jour Java de Red Hat.


Tout d'abord, essayez echo $JAVA_HOME depuis la ligne de commande. Depuis java est déjà sur votre chemin, JAVA_HOME peut être défini.

Quelle est la meilleure façon de déterminer le répertoire d'installation de mon installation Java

Lancer la commande which java vous indiquera où java est installé.

puis définissez JAVA_HOME

Vous pouvez modifier ~/.bashrc , ~/.bash_profile , ou /etc/profile pour définir JAVA_HOME . Réglage en ~/etc/profile le définira à l'échelle du système, et ce n'est probablement pas ce que vous voulez. Dites à titre d'exemple la sortie de which java est /opt/jdk_1.7.0_25 , alors il vous suffirait d'ajouter export JAVA_HOME=/opt/jdk_1.7.0_25 à ~/.bashrc ou ~/.bash_profile puis exécutez source ~/.bashrc (ou source ~/.bash_profile si vous le définissez ici).

Notez que dans ce cas, java est sur le PATH mais dans certains cas, vous devrez ajouter export PATH=$PATH:$JAVA_HOME/bin pour ajouter le JAVA_HOME variable au PATH .


RHEL utilise un sous-système alternatif pour gérer les installations Java. Vous pouvez installer plusieurs versions de Java, mais une seule est active à la fois.

Cela signifie que l'exécution de which java ne fournit pas d'informations utiles. Le résultat serait le même quelle que soit l'installation Java sélectionnée via les alternatives. Exécution de readlink -f $(which java) (comme déjà suggéré dans un autre commentaire) ou en utilisant des alternatives de demande alternatives --display java serait mieux.

Voir l'exemple de la machine RHEL 6 avec OpenJDK installé (qui est livré avec RHEL) :

[[email protected] ~]# which java
/usr/bin/java
[[email protected] ~]# readlink -f $(which java)
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64/jre/bin/java
[[email protected] ~]# alternatives --display java | head -2
java - status is manual.
 link currently points to /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Notez que la variable d'environnement JAVA_HOME n'est défini nulle part par défaut, vous devrez le définir vous-même en .bashrc d'utilisateur qui en a besoin.

Dans l'exemple précédent, corrigez la valeur de JAVA_HOME serait /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64 .

Voir les détails dans la documentation d'installation d'OpenJDK, recherchez la section "Facultatif :définissez la variable d'environnement JAVA_HOME".


Linux
  1. Trouver un modèle et déplacer ?

  2. CentOS / RHEL :Comment trouver la date et l'heure d'installation du RPM

  3. Rechercher et copier des fichiers

  4. Rechercher et renommer un répertoire

  5. JAVA_HOME et PATH sont définis mais java -version affiche toujours l'ancien

Comment définir le chemin JAVA_HOME dans Ubuntu 20.04 et Ubuntu 22.04

Comment définir la date, l'heure et le fuseau horaire dans RHEL 8

Comment définir correctement la variable JAVA_HOME dans Ubuntu Linux

Trouvez facilement des fichiers et des répertoires sur Linux

Comment définir la date et l'heure sous Linux

Comment configurer SSH sur CentOS et RHEL