readlink
příkaz vám ukáže úplnou cestu symbolického odkazu:
readlink -f `which java`
Nejlepší, co můžete udělat, je vyhnout se javě Red Hat úplně.
Získejte svou javu od Oracle a vložte ji do /opt. Pak stačí vytvořit symbolický odkaz /opt/java -> /opt/jdk-someversion a vytvořit /etc/profile.d/java.sh obsahující
#!/bin/sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
Poté, chcete-li změnit javu v celém systému, stačí změnit symbolický odkaz v opt. Chcete-li použít více verzí Java, použijte skripty jako výše s příslušnou JAVA_HOME.
Kromě toho skript /sbin/service používaný ke spouštění skriptů /etc/init.d vytrhne proměnné prostředí - explicitně spustí env -i. Takže váš kocour nezíská JAVA_HOME, budete muset vytvořit setenv.sh v $CATALINA_BASE/bin.
Nevýhodou tohoto přístupu je, že od Red Hatu nedostáváte aktualizace java.
Nejprve zkuste echo $JAVA_HOME
z příkazového řádku. Od java
je již na vaší cestě, JAVA_HOME
může být nastaveno.
Jaký je nejlepší způsob, jak zjistit instalační adresář mé instalace Java
Spuštění příkazu which java
vás nasměruje na java
je nainstalován.
a poté nastavte JAVA_HOME
Můžete upravit ~/.bashrc
, ~/.bash_profile
nebo /etc/profile
nastavte JAVA_HOME
. Nastavení na ~/etc/profile
nastaví to na celý systém, a to pravděpodobně není to, co chcete. Řekněme pro příklad výstup which java
je /opt/jdk_1.7.0_25
, pak byste jen přidali export JAVA_HOME=/opt/jdk_1.7.0_25
na ~/.bashrc
nebo ~/.bash_profile
a poté spusťte source ~/.bashrc
(nebo source ~/.bash_profile
pokud to tam nastavíte).
Všimněte si, že v tomto případě java
je na PATH
ale v některých případech budete muset přidat export PATH=$PATH:$JAVA_HOME/bin
přidejte JAVA_HOME
proměnná na PATH
.
RHEL používá alternativní subsystém ke správě instalací Java. Můžete mít nainstalovaných více verzí Java, ale aktivní je vždy pouze jedna.
To znamená, že běží which java
neposkytuje užitečné informace. Výstup by byl stejný bez ohledu na to, která java instalace je vybrána přes alternativy. Spuštěn readlink -f $(which java)
(jak již bylo navrženo v jiném komentáři) nebo pomocí alternativních dotazů alternatives --display java
bylo by to lepší.
Viz příklad ze stroje RHEL 6 s nainstalovaným OpenJDK (který je dodáván s 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
Všimněte si, že proměnná prostředí JAVA_HOME
není ve výchozím nastavení nikde definováno, budete ho muset definovat sami v .bashrc
uživatele, který to vyžaduje.
V předchozím příkladu správná hodnota JAVA_HOME
by bylo /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
.
Podrobnosti naleznete v části Instalace OpenJDKdocumentation, vyhledejte sekci "Volitelné:Nastavte proměnnou prostředí JAVA_HOME".