Frage Was ist der Wert von JAVA_HOME für CentOS?


Ich habe Java auf yum auf CentOS installiert, aber ein anderes Java-Programm muss wissen, was die Umgebungsvariable JAVA_HOME ist. Ich weiß alles über das Setzen von Umgebungsvariablen, aber was setze ich darauf? java ist installiert in /usr/bin/javaEs kann nicht da sein!


34
2017-08-06 12:44


Ursprung




Antworten:


Eigentlich habe ich es gefunden,

es ist /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. Ich habe herausgefunden, was es ist update-alternatives --display java und es zeigte mir das Verzeichnis /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java


52
2017-08-06 12:49





Ich bin mir nicht ganz sicher, aber wenn Sie das normale RPMS installieren, kann der JAVA_HOME-Wert auch auf Folgendes gesetzt 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: Hier ist Wie installiere ich Java auf meinem Rechner?:

Installieren Sie Java

Laden Sie Java JDK von Oracle herunter und installieren Sie es

Machen Sie es zum primären

Stellen Sie sicher, dass Java mit den folgenden beiden Befehlen anstelle der OpenJDK-Version verwendet wird:

Zuerst

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

Zweite

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

Setze JAVA_HOME

Stellen Sie sicher, dass für alle Benutzer die Umgebungsvariable JAVA_HOME auf den richtigen Wert gesetzt ist:

echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh

19
2017-08-06 13:16



Oh, interessant. :) - Rory
Da ist kein /usr/java/default in meiner CentOS 6 Box mit OpenJDK 1.6 und 1.7 installiert. - Daniel Serodio
@DanielSerodio Korrigieren. Ich habe eindeutig "Java JDK von Oracle herunterladen und installieren" beschrieben, und dann existiert es. - Niels Basjes


Sie möchten JAVA_HOME als Stammverzeichnis für JDK oder JRE festlegen, zum Beispiel:

export JAVA_HOME=/usr/java/jdk1.3

Wenn das JDK (Development kit) installiert ist, möchte ypu wahrscheinlich darauf zeigen, andernfalls den JRE-Pfad (Java Runtime Environment) verwenden. Dann möchten Sie möglicherweise Ihre $ PATH-Umgebungsvariable so einstellen, dass sie auch das Verzeichnis bin 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, das Sie bearbeiten möchten, fügen Sie im Verzeichnis /etc/profile.d eine SH-Datei hinzu. Für einen bestimmten Benutzer können Sie es in die Benutzer ~ / .profile oder ~ / .bash_profile Dateien einfügen.


2
2017-08-06 13:12



Ich frage mich, ob es einen guten Grund gibt, warum die Installation das nicht für Sie tut, wenn Sie als Superuser laufen, ich finde es immer irritierend ... - Kyle Brandt♦


Unten arbeitet immer perfekt von mir aus:

[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

Das bedeutet, dass ich JAVA_HOME als /usr/java/jdk1.6.0_31 festlegen kann


2
2017-07-26 17:14





Ich dachte über das Problem nach, wenn man die Version von Java ändert, die benutzt wird mit:

alternatives --config java

Dann ist alles hart codiert JAVA_HOME wird sich ändern (zumindest auf den Centos 6.6, die ich gerade anstarre). 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 das Beste zu sein.

Im /etc/bashrc Ich habe die Einstellung geändert auf JAVA_HOME sein:

export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')

Sie müssen etwas ähnliches auf MacOSX tun, aber ohne all das grep und sed das Ergebnis analysieren. Sicherlich alternatives bietet eine ähnlich einfachere Lösung.

Wie auch immer ich hoffe, dass ich geholfen habe.


Aktualisieren

Nein, das wäre es JRE_HOME. Das JDK / SDK erweist sich nicht als offensichtlich (ich werde weiter suchen).

Das alternatives scheint nur über die JRE standardmäßig zu sein. Ich zögere auf @Niels Antwort oder installiere einfach Java mit yum und setze JAVA_HOME darauf (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 ist aufgefallen java_1.8.0 ist ein Symlink zu /etc/alternatives/java_sdk_1.8.0 und setze mein $ JAVA_HOME auf /usr/lib/jvm/java_1.8.0. In dem /etc/bashrc.


1
2018-06-23 03:24





Das ist seltsam, der ganze Sinn einer Umgebungsvariablen JAVE_HOME ist, dass Sie nicht den Pfad zu jedem Programm angeben müssen, sondern diesen Pfad, indem Sie nach dieser Variablen suchen.

Wie auch immer, der richtige Weg, um die Umgebungsvariable für JAVA_HOME zu finden, ist die Verwendung von echo:

[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09

Wenn Sie diesen Befehl ausführen, wird der Pfad unabhängig von der ausgeführten Version über die Befehlszeile angezeigt.


0
2017-08-06 12:56



Die Variable wurde nicht festgelegt. - Rory