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ż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
/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.
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.
apt-get
i dystrybucja będą Debian 2.6.26
. AFAIK, powinien być taki sam dla wszystkich instrumentów pochodnych Debiana.
$ which java
powinien dać ci coś takiego
/usr/bin/java
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
which javac
lub
cd /
find . -name 'javac'
Użyj znajdź, aby go zlokalizować. Powinno być /usr
gdzieś:
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
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
alternatives --display java
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
Proste, spróbuj:
Jest to / usr / local / java / jdk [wersja]
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-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.
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é
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
Jest to najlepszy sposób, który działał dla mnie Wykonaj to polecenie: -
$(dirname $(readlink $(which javac)))/java_home