Jak znaleźć ścieżkę, w której zainstalowano JDK?

34

Zainstalowałem jdk1.7.0.rpmpakiet w RHEL6.
Gdzie znajdę ścieżkę do uruchomienia mojego pierwszego programu Java?

Mohammad Faisal
źródło
2
Możliwy duplikat 18472
sakisk
2
Cześć Mohammad. To nie jest głupie pytanie, ale na które już udzielono odpowiedzi w kilku miejscach - jak to lub to pytanie .
rozcietrzewiacz
Po prostu PS: w systemie MacOS Java jest zwykle instalowana pod adresem „/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home”, gdzie numer wersji może być inny.
Daniel Wang,

Odpowiedzi:

48

Spróbuj jednego z dwóch:

$ java

$ whereis java

Aby zapoznać się z pierwszym programem Java, przeczytaj ten samouczek:

"Witaj świecie!" dla systemu operacyjnego Solaris i Linux

Sadique
źródło
Uwaga: te polecenia dają różne wyniki. Jeśli interesuje Cię ścieżka inna niż symlink, skorzystaj z whereis java.
P.Brian.Mackey
Nie sądzę, że to odpowiada na pytanie. Plik javabinarny jest instalowany z JRE, ale jeśli robisz programowanie, potrzebujesz JDK, który niekoniecznie jest zainstalowany which java(którym w moim przypadku jest / usr / bin).
Tim S.
12

Możesz wyświetlić listę zainstalowanych plików za pomocą

rpm -ql packagename

Zobaczysz gdzieś binkatalog zjava executable

Ale jeśli JDK RPM został poprawnie zainstalowany, powinieneś już znaleźć javana swojej ścieżce.

Próbować

javac MyFirstJavaClass.java

i jeśli wszystko się skompiluje

java MyFirstClass

(Jeśli niczego nie zmieniłeś, bieżący katalog .powinien już znajdować się na ścieżce zajęć)

Matteo
źródło
To powinna być zaakceptowana odpowiedź IMO.
Tim S.
8

Ponieważ kwestia ta jest specyficzna RPM, rpmjest sposób, aby zacząć (jak odpowiedział przez @Matteo ).

flagi rpm

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

Przykład

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

Wiedząc o tym, może być pożądane ustawienie $JAVA_HOMEzmiennej użytkownika lub aplikacji . Często jest to potrzebne, gdy system posiada wiele wersji Java zainstalowany lub wielu rozkładów zainstalowane oprogramowanie Java, takie jak OpenJDK oraz Oracle / Sun .

$JAVA_HOME Przykład

W ~/.bash_profilelub powiązanego pliku ( .bashrc, .zshrc, .cshrc, setenv.sh), można stosować coś podobnego do poniżej.

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

Jeśli chcesz mieć większą kontrolę nad tym, gdzie instalowana jest Java, na przykład w /opt, możesz użyć tarball zamiast pliku RPM.


Inne podobne pytania dotyczą tego, jak znaleźć dowolny plik binarny lub plik, w ogólnym przypadku.

Kevin
źródło
Ogólnie rzecz biorąc, bardzo polecam używanie pakietu mlocate do znajdowania rzeczy w systemie plików Linuksa opartym na Red Hat.
Kevin
7

Na RHEL7 użyłem

locate openjdk

i zaprowadził mnie do /usr/lib/jvm/katalogu zawierającego katalogi:

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/

Każdy z nich zawiera bin/java

Aby znaleźć pełną ścieżkę dowiązania symbolicznego, użyj:

readlink -f $(which java)

* Kredyt: odpowiedź na temat przepełnienia stosu

** Uwaga: odpowiadam tutaj, ponieważ był to pierwszy wynik w Google

r17n
źródło
To dało mi głównie JDK6, chociaż java -versiondało mi 1.8. Był jeden link do folderu JDK8 u góry.
Noumenon,