Antworten:
Ich bin mir nicht ganz sicher, aber wenn Sie das normale RPMS installieren, kann der JAVA_HOME-Wert auch so eingestellt werden:
/usr/java/default/
EDIT: Ich habe gerade mein Heimsystem überprüft. Ich habe diese Datei erstellt:
/etc/profile.d/java.sh
Das beinhaltet:
export JAVA_HOME=/usr/java/default/
und ich benutze die offizielle Version von Sun: jdk-1.6.0_12-fcs
BEARBEITEN: So richte ich Java auf meinem Computer ein :
Laden Sie Java JDK von Oracle herunter und installieren Sie es
Stellen Sie mithilfe der folgenden beiden Befehle sicher, dass dieses Java anstelle der OpenJDK-Version verwendet wird:
alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry
alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic
Stellen Sie sicher, dass für alle Benutzer die Umgebungsvariable JAVA_HOME auf den richtigen Wert festgelegt ist:
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
/usr/java/default
In meiner CentOS 6-Box ist kein mit OpenJDK 1.6 und 1.7 installiert.
Sie möchten JAVA_HOME als Stammspeicherort des JDK oder der JRE festlegen. Beispiel:
export JAVA_HOME=/usr/java/jdk1.3
Wenn das JDK (Development Kit) installiert ist, möchten Sie wahrscheinlich, dass es darauf verweist, und verwenden Sie den JRE-Pfad (Java Runtime Environment). Dann möchten Sie vielleicht Ihre Umgebungsvariable $ PATH so einstellen, dass sie auch das bin-Verzeichnis enthält:
export PATH=$PATH:/usr/java/jdk1.3/bin
Wenn Sie Tomcat verwenden, müssen Sie möglicherweise auch CATALINA_HOME für den Tomcat-Benutzer festlegen.
export CATALINA_HOME=/path/to/tomcat
Um dies für das System festzulegen, müssen Sie Ihr / etc / profile bearbeiten oder eine .sh-Datei im Ordner /etc/profile.d hinzufügen. Für einen bestimmten Benutzer können Sie ihn in die Benutzerdateien ~ / .profile oder ~ / .bash_profile einfügen.
Das Folgende funktioniert bei mir immer perfekt:
[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws
Dies bedeutet, dass ich JAVA_HOME als /usr/java/jdk1.6.0_31 festlegen kann
Ich dachte über das Problem nach, ob man die Java-Version ändert, die verwendet wird mit:
alternatives --config java
Dann wird sich jeder fest codierte Code JAVA_HOME
ändern (zumindest bei den Centos 6.6, auf die ich gerade starre). Das heißt, es gibt keine /usr/java
.
Dies scheint nicht der beste Weg zu sein (offen für Fehler), aber in den 10 Minuten, die ich damit verbracht habe, scheint es der beste zu sein.
In habe /etc/bashrc
ich die Einstellung geändert, um JAVA_HOME
zu sein:
export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')
Sie müssen unter MacOSX etwas Ähnliches tun, aber ohne all das grep
und sed
um das Ergebnis zu analysieren. Sicherlich alternatives
bietet sich eine ähnlich einfachere Lösung an.
Trotzdem hoffe ich, dass ich geholfen habe.
Aktualisieren
Nein das wäre JRE_HOME
. Das JDK / SDK ist nicht so offensichtlich (ich werde weiter suchen).
Es alternatives
scheint sich standardmäßig nur um die JRE zu handeln. Ich verlasse mich auf @Niels Antwort oder installiere einfach Java mit yum
und setze das JAVA_HOME auf das (der Trick ist, wo ich gefunden habe, wo das installiert wurde!).
yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
Mir java_1.8.0
ist ein Symlink auf aufgefallen /etc/alternatives/java_sdk_1.8.0
und ich habe mein $ JAVA_HOME auf gesetzt /usr/lib/jvm/java_1.8.0
. In der /etc/bashrc
.
Das ist seltsam, der Sinn einer JAVE_HOME-Umgebungsvariablen besteht darin, dass Sie nicht den Pfad zu jedem Programm angeben müssen, sondern diesen Pfad ermitteln müssen, indem Sie nach dieser Variablen suchen.
In beiden Fällen können Sie die Umgebungsvariable für JAVA_HOME korrekt ermitteln, indem Sie echo verwenden:
[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09
Durch Ausführen dieses Befehls wird der Pfad unabhängig von der von Ihnen ausgeführten Version über die Befehlszeile angezeigt.
Informationen zu Centos7 finden Sie in der Datei /etc/java/java.conf.
JAVA_HOME soll sich in folgendem Verzeichnis befinden: / usr / lib / jvm / java
Ich habe überprüft, es ist die richtige Version des JDK, das ich über YUM geladen habe, und so ...
In meinem Env ist JAVA_HOME nicht standardmäßig eingestellt, daher habe ich es in .bash_profile eingestellt
Ich fand das Paket - Manager in einer Vielzahl von Standorten platzieren können, so verwenden die (Sie müssen explizit diese installieren , wenn ein Behälter verwendet wird ) die folgenden ist etwas weniger spröde
javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome
oder für JRE
javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome