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?
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ę).
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
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.
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
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
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
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
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
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.
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ą ...
/usr/local/java/
oryginalne pobrane dystrybucje Oracle.Odpowiedzi:
To zależy trochę od twojego systemu pakietów ... jeśli
java
polecenie 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żywaapt-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
źródło
/usr/lib/jvm/java-7-openjdk-amd64
.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*' -prune
jak zauważam w komentarzu poniżej.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.
źródło
apt-get
i dystrybucja będąDebian 2.6.26
. AFAIK, powinien być taki sam dla wszystkich instrumentów pochodnych Debiana.powinien dać ci coś takiego
źródło
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_HOME
zawiera ścieżkęlib/tools.jar
. W obsadzie/usr/lib/jvm/java-8-oracle/bin
nie jest to prawdą, dlatego nie jest to JDK.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.To pytanie zostanie przeniesione, ale możesz wykonać następujące czynności
lub
źródło
Użyj znajdź, aby go zlokalizować. Powinno być
/usr
gdzieś:Po uruchomieniu polecenia, jeśli jest zbyt wiele komunikatów „Odmowa zezwolenia” zaciemniających faktycznie znalezione wyniki, po prostu przekieruj stderr na / dev / null
źródło
Innym najlepszym sposobem na znalezienie ścieżki do folderu Java jest użycie
alternatives
polecenia 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
źródło
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
źródło
Proste, spróbuj:
Jest to / usr / local / java / jdk [wersja]
źródło
polecenie:
sudo update-alternatives --config java
znajdzie pełną ścieżkę wszystkich zainstalowanych wersji Javaźródło
To pytanie nadal wydaje się aktualne, a odpowiedź wydaje się być ruchomym celem.
W moim systemie Debian (Buster):
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 symbolicznymdefault-java
. Istnieje równieżopenjdk-11
katalog, 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.
źródło
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é
źródło
W Linuksie Fedora30 dostępnych jest kilka wersji pełnego JDK Javy, w szczególności nazwy pakietów:
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:
Oto dwie dobre opcje, które są linkami do konkretnych wersji, w których będziesz musiał wybrać wersję:
źródło
Jest to najlepszy sposób, który działał dla mnie Wykonaj to polecenie: -
źródło