Відповіді:
Це трохи залежить від вашої пакетної системи ... якщо java
команда працює, ви можете ввести, readlink -f $(which java)
щоб знайти місце команди java. У системі OpenSUSE я зараз повертається /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java
(але це не система, яка використовує apt-get
).
На Ubuntu, схоже, він є /usr/lib/jvm/java-6-openjdk/
для OpenJDK, а також у деяких інших підкаталогах /usr/lib/jvm/
для Suns JDK (та інших реалізацій, я думаю).
Для будь-якого пакету ви можете визначити, які файли він встановлює та де він встановлює, запитуючи dpkg. Наприклад для пакету 'openjdk-6-jdk':dpkg -L openjdk-6-jdk
/usr/lib/jvm/java-7-openjdk-amd64
.
readlink -f $(which javac)
- зверніть увагу на "c" у випадку, якщо на одній машині є дивна суміш JDK та JRE. JDK включає компілятор (javac), а JRE - ні. Однак якщо шлях невірний, це не вдасться, і ви можете спробувати це: find /usr/java -wholename '*ava/jdk*' -prune
як я зазначаю в коментарі нижче.
update-java-alternatives -l
підкаже, яка реалізація Java є типовою для вашої системи та де у файловій системі вона встановлена. Перегляньте посібник, щоб дізнатися більше.
apt-get
і дистрибутив Debian 2.6.26
. AFAIK, він повинен бути однаковим для всіх похідних debian.
$ which java
повинен дати вам щось подібне
/usr/bin/java
readlink -f $(which javac)
вона друкується /usr/lib/jvm/java-8-oracle/bin/javac
. Ця папка НЕ є JDK. Загальне випробування кислотно-лужної основи, щоб побачити, чи є його JDK, щоб побачити, чи $JAVA_HOME
містить струм шлях lib/tools.jar
. У ролях /usr/lib/jvm/java-8-oracle/bin
це неправда, тому це не JDK.
find /usr/java -wholename '*ava/jdk*' -prune
Але поведінка залежить від того, чи говориш ви про OpenJDK або Oracle Java та як це було встановлено в першу чергу.
Це питання буде переміщено, але ви можете зробити наступне
which javac
або
cd /
find . -name 'javac'
Скористайтеся значком, щоб розмістити його. Це має бути /usr
десь під :
find /usr -name java
Під час виконання команди, якщо занадто багато повідомлень "Дозвіл відхилено", що обробляє фактично знайдені результати, просто переспрямуйте stderr на / dev / null
find /usr -name java 2> /dev/null
Ще один найкращий спосіб знайти шлях до папки Java - це використання alternatives
команди у Fedora Linux (я знаю, що це для Ubuntu, але я потрапив у цю публікацію з google лише за своїм заголовком). Просто хочу поділитися людьми, як я, шукаючи відповіді на аромат Fedora.
Відобразити всю інформацію про java
alternatives --display java
Три кроковий процес: по-перше: відкрийте Terminal-> $ whereis java
він дасть вихід таким чином:
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
По-друге:
ls -l /usr/bin/java
Це дало б такий вихід:
lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java
По-третє:
ls -l /etc/alternatives/java
вихід - шлях JDK:
lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Просто, спробуйте:
It / usr / local / java / jdk [версія]
Це питання все ще видається актуальним, і відповідь здається рухомою ціллю.
У моїй системі debian (buster):
> update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
Однак якщо ви дійсно заглянете туди, ви побачите, що існує декілька каталогів та символічних посилань, розміщених там пакетною системою для спрощення подальшого обслуговування.
Фактичний каталог java-11-openjdk-amd64
із іншим символьним посиланням default-java
. Існує також openjdk-11
каталог, але, схоже, він містить лише файл source.zip.
Враховуючи це, для Debian ТОЛЬКО я думаю, що найкраще значення має /usr/lib/jvm/default-java
це завжди має бути дійсним, навіть якщо ви вирішили встановити зовсім іншу версію Java або навіть переключити постачальників.
Нормальна причина хотіти знати шлях полягає в тому, що якась програма хоче цього, і ви, мабуть, не хочете, щоб ця програма ламалася, тому що ви зробили оновлення, яке змінило номери версій.
на OpenSUSE 13.1 / 13.2 його: номер /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
версії може бути 1.7.x 1.8.x і т. д. Перевірте встановлену вами версію програмного забезпечення відьми.
Андре
В Linux Fedora30 доступні кілька версій повного Java JDK, зокрема назви пакетів:
java-1.8.0-openjdk-devel.x86_64
java-11-openjdk-devel.x86_64
Після встановлення їх можна знайти в: /usr/lib/jvm
Для вибору місця розташування / каталогу повного розробки JDK (який відрізняється від простішого JRE лише для виконання) шукайте записи:
ls -ld java*openjdk*
Ось два хороших варіанти - посилання на конкретні версії, де вам доведеться вибрати версію:
/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
Це найкращий спосіб, який працював для мене Виконання цієї команди: -
$(dirname $(readlink $(which javac)))/java_home