Wie finde ich den Pfad, in dem jdk installiert ist?

34

Ich habe das jdk1.7.0.rpmPaket in RHEL6 installiert .
Wo finde ich den Pfad, um mein erstes Java-Programm auszuführen?

Mohammad Faisal
quelle
2
Mögliches Duplikat von 18472
sakisk
2
Hallo, Mohammad. Es ist keine blöde Frage, sondern eine, die bereits an mehreren Stellen beantwortet wurde - so oder so .
Rozcietrzewiacz
Nur eine PS: Unter MacOS wird Java normalerweise unter '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home' installiert, wobei die Versionsnummer abweichen kann.
Daniel Wang

Antworten:

48

Probieren Sie eine der beiden folgenden Möglichkeiten:

$ welche Java

$ whereis java

Für Ihr erstes Java-Programm lesen Sie dieses Tutorial:

"Hallo Welt!" für Solaris OS und Linux

Sadique
quelle
Beachten Sie, dass diese Befehle unterschiedliche Ergebnisse liefern. Wenn Sie sich für den Pfad ohne Symlink interessieren, verwenden Sie whereis java.
P. Brian Mackey
Ich glaube nicht, dass dies die Frage beantwortet. Die javaBinärdatei wird mit der JRE installiert, aber wenn Sie die Entwicklung durchführen, benötigen Sie JDK, das nicht unbedingt installiert ist which java(in meinem Fall / usr / bin).
Tim S.
12

Sie können die installierten Dateien mit auflisten

rpm -ql packagename

Du wirst irgendwo ein binVerzeichnis mit sehenjava executable

Wenn das JDK-RPM jedoch korrekt installiert wurde, sollten Sie es bereits javain Ihrem Pfad finden.

Versuchen

javac MyFirstJavaClass.java

und wenn alles kompiliert

java MyFirstClass

(Wenn Sie nichts geändert haben, sollte sich das aktuelle Verzeichnis .bereits in Ihrem Klassenpfad befinden.)

Matteo
quelle
Dies sollte die akzeptierte Antwort IMO sein.
Tim S.
8

Da diese Frage RPM-spezifisch rpmist, können Sie damit beginnen (wie von @Matteo beantwortet ).

rpm flags

-q is short for --query
-l is short for --list

Beispiel

rpm -ql jdk1.8.0_20 | grep "jdk1.8.0_20/bin$"
/usr/java/jdk1.8.0_20/bin

Dies zu wissen, kann wünschenswert sein, um eine Benutzer- oder Anwendungsvariable $JAVA_HOMEfestzulegen. Dies wird oft benötigt , wenn ein System mehrere Versionen von Java installiert ist , oder mehrere Distributionen von Java installiert ist , zB OpenJDK und Oracle / Sonne .

$JAVA_HOME Beispiel

In der ~/.bash_profileoder zugehörigen Datei ( .bashrc, .zshrc, .cshrc, setenv.sh), etwas Ähnliches wie die folgenden verwendet werden.

JAVA_HOME='/usr/java/jdk1.8.0_20'
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"
export PATH

Wenn Sie mehr Kontrolle darüber haben möchten, wo Java installiert wird, z. B. in /opt, können Sie anstelle der RPM-Datei den Tarball verwenden.


Andere ähnliche Fragen betreffen die Suche nach Binärdateien oder Dateien im allgemeinen Fall.

Kevin
quelle
Im Allgemeinen empfehle ich dringend, das mlocate- Paket zu verwenden, um auf einem Red Hat-basierten Linux-Dateisystem nach Dingen zu suchen .
Kevin
7

Auf RHEL7 habe ich verwendet

locate openjdk

und es führte mich zu dem /usr/lib/jvm/Verzeichnis, das die Verzeichnisse enthielt:

java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/
jre/
jre-1.8.0/
jre-1.8.0-openjdk/
jre-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/
jre-openjdk/

Jede davon enthält a bin/java

Um den vollständigen Pfad des symbolischen Links zu finden, verwenden Sie:

readlink -f $(which java)

* Gutschrift: Antwort auf Stapelüberlauf

** Hinweis: Ich antworte hier, da es das erste Ergebnis in Google war

r17n
quelle
Das gab mir meistens JDK6, obwohl java -versionich 1,8 bekam. Ganz oben befand sich ein Link zum JDK8-Ordner.
Noumenon