Gdzie mogę znaleźć pakiet Java SDK w systemie Linux po jego zainstalowaniu?

185

Zainstalowałem JDK za pomocą instalacji apt-get, ale nie wiem, gdzie jest mój folder jdk. Muszę ustawić ścieżkę do tego. Czy ktoś ma pojęcie o lokalizacji?

dinesh707
źródło
1
Dystrybucja Linuksa: Debian 2.6.26
dinesh707
Wypróbuj /usr/local/java/oryginalne pobrane dystrybucje Oracle.
Zon

Odpowiedzi:

385

To zależy trochę od twojego systemu pakietów ... jeśli javapolecenie działa, możesz wpisać, readlink -f $(which java)aby znaleźć lokalizację polecenia java. W systemie OpenSUSE, w którym jestem, teraz powraca /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(ale nie jest to system, który używa apt-get).


W Ubuntu wygląda na to, że jest w /usr/lib/jvm/java-6-openjdk/ OpenJDK i w innym podkatalogu /usr/lib/jvm/Suns JDK (i innych implementacjach, jak sądzę).

Debian jest taki sam.


Dla każdego pakietu możesz określić, które pliki instaluje i gdzie je instaluje, sprawdzając dpkg. Na przykład dla pakietu „openjdk-6-jdk”:dpkg -L openjdk-6-jdk

Paŭlo Ebermann
źródło
1
orth również szuka w / usr / java w niektórych konfiguracjach, które widziałem
jlb83
Jeśli chcesz dodać ścieżkę JDK w Android Studio, dodaj to / usr / lib / jvm / java-8-oracle /
Rohit Rokde
3
Wydaje się, że moja ścieżka jest /usr/lib/jvm/java-7-openjdk-amd64.
einverne
2
Wydaje mi się, że podany link readlink jest najbardziej elegancki (i wydajny), ale sugeruję readlink -f $(which javac) - zwróć uwagę na „c” na wypadek, gdyby na tej samej maszynie znajdowała się dziwna mieszanka JDK i JRE. JDK zawiera kompilator (javac), a JRE nie. Jednak jeśli ścieżka nie jest poprawna, co się nie powiedzie i możesz spróbować: find /usr/java -wholename '*ava/jdk*' -prunejak zauważam w komentarzu poniżej.
Steven the Easy Amused
@ Winnemucca To działa dla mnie, możesz znaleźć, gdzie jest Java, a następnie możesz znaleźć ścieżkę jdk.
einverne
45
update-java-alternatives -l

powie Ci, która implementacja Java jest domyślna dla twojego systemu i gdzie w systemie plików jest ona zainstalowana. Więcej instrukcji znajdziesz w instrukcji obsługi.

forcefsck
źródło
7
Jest to specyficzne dla Debiana (przynajmniej). Inne dystrybucje mogą tego nie mieć
dequis
2
@dequis, jest to odpowiedź specyficzna dla Debiana, ponieważ wspomniane pytanie apt-geti dystrybucja będą Debian 2.6.26. AFAIK, powinien być taki sam dla wszystkich instrumentów pochodnych Debiana.
forcefsck
2
Po prostu wskazuję to innym ludziom. Wiem, że dotyczy to tego konkretnego pytania.
dequis
1
aktualizacja-alternatywy - lista | grep java pracował dla mnie w RHEL
Upen
30
$ which java 

powinien dać ci coś takiego

/usr/bin/java
Surrican
źródło
2
prawdziwe. Założę się, że jest to po instalacji apt-get
The Surrican
6
To tak naprawdę nie wskazuje na pełny JDK. 1. Jest to dowiązanie symboliczne i nawet jeśli przeczytasz dowiązanie symboliczne, plik binarny również nie znajduje się w JDK. Na przykład, jeśli uruchomię polecenie readlink -f $(which javac), drukuje /usr/lib/jvm/java-8-oracle/bin/javac. Ten folder bin NIE jest JDK. Ogólny test kwasowo-zasadowy, aby sprawdzić, czy jest to JDK, czy prąd $JAVA_HOMEzawiera ścieżkę lib/tools.jar. W obsadzie /usr/lib/jvm/java-8-oracle/binnie jest to prawdą, dlatego nie jest to JDK.
Zombie
Na Centos / RHL To właśnie wolę znaleźć JDK (jeśli jest zainstalowany) find /usr/java -wholename '*ava/jdk*' -prune Ale zachowanie zależy od tego, czy mówisz o OpenJDK czy Oracle Java i jak został on zainstalowany.
Steven the Easy Amused
12

To pytanie zostanie przeniesione, ale możesz wykonać następujące czynności

which javac

lub

cd /
find . -name 'javac'
Andrew T Finnell
źródło
Podoba mi się druga opcja - prosta i przydatna, jeśli masz wiele JRE / JDK i chcesz je wszystkie znaleźć.
Amos M. Carpenter
„find / -name 'javac” jest mniej typowy, ale wymaga uprawnień administratora (root), w przeciwnym razie otrzymasz wiele uprawnień, którym odmówiono.
Steven the Easy Amused
9

Użyj znajdź, aby go zlokalizować. Powinno być /usrgdzieś:

find /usr -name java

Po uruchomieniu polecenia, jeśli jest zbyt wiele komunikatów „Odmowa zezwolenia” zaciemniających faktycznie znalezione wyniki, po prostu przekieruj stderr na / dev / null

find /usr -name java 2> /dev/null
Brent Worden
źródło
1
Jeśli nie root (admin), dostaniesz mnóstwo wiadomości o odmowie uprawnień.
Steven the Easy Amused
7

Innym najlepszym sposobem na znalezienie ścieżki do folderu Java jest użycie alternativespolecenia w Fedorze Linux (wiem, że to dla Ubuntu, ale trafiłem na ten post z google tylko według jego nagłówka). Chcę tylko podzielić się z innymi osobami, takimi jak ja, szukającymi odpowiedzi na smak fedora.

Aby wyświetlić wszystkie informacje dotyczące Java

alternatives --display java
iankits
źródło
1
To zadziałało dla mnie, zwracając / usr / java / jdk- [wersja] na Fedorze
Sina Madani
3

Trzyetapowy proces: po pierwsze: otwórz Terminal-> $ whereis java da wynik w następujący sposób: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

Po drugie: ls -l /usr/bin/java dałoby wynik w następujący sposób: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

Po trzecie: ls -l /etc/alternatives/java wyjściem jest ścieżka JDK: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Anubhav Gupta
źródło
2

Proste, spróbuj:

Jest to / usr / local / java / jdk [wersja]

Spodnie Ashansu
źródło
1

polecenie: sudo update-alternatives --config javaznajdzie pełną ścieżkę wszystkich zainstalowanych wersji Java

Hasan
źródło
1

To pytanie nadal wydaje się aktualne, a odpowiedź wydaje się być ruchomym celem.

W moim systemie Debian (Buster):

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

Jeśli jednak rzeczywiście tam zajrzysz, zobaczysz, że istnieje wiele katalogów i dowiązań symbolicznych umieszczonych w systemie pakietów w celu uproszczenia przyszłej konserwacji.

Rzeczywistym katalogiem jest java-11-openjdk-amd64, z innym dowiązaniem symbolicznym default-java. Istnieje również openjdk-11katalog, ale wygląda na to, że zawiera tylko plik source.zip.

Biorąc to pod uwagę, TYLKO dla Debiana, sądzę, że najlepszą wartością jest użycie /usr/lib/jvm/default-java, ponieważ powinno to być zawsze ważne, nawet jeśli zdecydujesz się zainstalować zupełnie inną wersję Java, a nawet zmienić dostawców.

Normalnym powodem, dla którego chcesz poznać ścieżkę, jest to, że niektóre aplikacje tego chcą i prawdopodobnie nie chcesz, aby ta aplikacja się zepsuła, ponieważ wykonałeś aktualizację, która zmieniła numery wersji.

Dread Quixadhal
źródło
0

na OpenSUSE 13.1 / 13.2 jego: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
numer wersji może wynosić 1.7.x 1.8.x itd. sprawdzić menedżera oprogramowania z zainstalowaną wersją ...

André

Holenderska chwała
źródło
0

W Linuksie Fedora30 dostępnych jest kilka wersji pełnego JDK Javy, w szczególności nazwy pakietów:

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

Po zainstalowaniu znajdują się w: /usr/lib/jvm

Aby wybrać lokalizację / katalog pełnej wersji JDK (która różni się od prostszego środowiska wykonawczego tylko JRE), poszukaj wpisów:

ls -ld java*openjdk*

Oto dwie dobre opcje, które są linkami do konkretnych wersji, w których będziesz musiał wybrać wersję:

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
Grant Rostig
źródło
0

Jest to najlepszy sposób, który działał dla mnie Wykonaj to polecenie: -

$(dirname $(readlink $(which javac)))/java_home
Manish Sharma
źródło