Де я можу знайти Java SDK в Linux після його встановлення?


185

Я встановив JDK за допомогою apt-get install, але не знаю, де моя папка jdk. Мені потрібно встановити шлях до цього. У когось є підказки про місцезнаходження?


1
Розподіл Linux: Debian 2.6.26
dinesh707

Спробуйте /usr/local/java/оригінальні завантажені дистрибутиви Oracle.
Зон

Відповіді:


385

Це трохи залежить від вашої пакетної системи ... якщо 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 (та інших реалізацій, я думаю).

Debian - те саме.


Для будь-якого пакету ви можете визначити, які файли він встановлює та де він встановлює, запитуючи dpkg. Наприклад для пакету 'openjdk-6-jdk':dpkg -L openjdk-6-jdk


1
orth дивлячись у / usr / java також на деякі установки, які я бачив
jlb83

Якщо ви хочете додати шлях JDK в студії Android, додайте це / usr / lib / jvm / java-8-oracle /
Rohit Rokde

3
Здається, мій шлях /usr/lib/jvm/java-7-openjdk-amd64.
einverne

2
Я думаю, що readlink як даний є найелегантнішим (та ефективним), але я пропоную readlink -f $(which javac) - зверніть увагу на "c" у випадку, якщо на одній машині є дивна суміш JDK та JRE. JDK включає компілятор (javac), а JRE - ні. Однак якщо шлях невірний, це не вдасться, і ви можете спробувати це: find /usr/java -wholename '*ava/jdk*' -pruneяк я зазначаю в коментарі нижче.
Стівен Легко забавлений

@Winnemucca Це працює для мене, ви можете знайти, де знаходиться Java, і тоді ви можете знайти, де шлях до jdk.
einverne

45
update-java-alternatives -l

підкаже, яка реалізація Java є типовою для вашої системи та де у файловій системі вона встановлена. Перегляньте посібник, щоб дізнатися більше.


7
Це специфічно для debian (принаймні). Інші дистрибутиви можуть не мати цього
декіс

2
@dequis, це відповідь, специфічна для debian, оскільки згадане питання apt-getі дистрибутив Debian 2.6.26. AFAIK, він повинен бути однаковим для всіх похідних debian.
forcefsck

2
Я просто вказую це на інших людей. Я знаю, що це справедливо для цього конкретного питання.
декіс

1
оновлення-альтернативи - список | grep java працював для мене на RHEL
Upen

30
$ which java 

повинен дати вам щось подібне

/usr/bin/java

2
правда. Б'юсь об заклад, це після
влучної

6
Це фактично не вказує на повний JDK. 1. Це симпосилання, і навіть якщо ви читаєте символьне посилання, двійковий файл також не знаходиться в межах JDK. Наприклад, якщо я запускаю команду, 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.
Зомбі

On Centos / RHL Це те, що я вважаю за краще знайти JDK (якщо він встановлений). find /usr/java -wholename '*ava/jdk*' -prune Але поведінка залежить від того, чи говориш ви про OpenJDK або Oracle Java та як це було встановлено в першу чергу.
Стівен Легко забавлений

12

Це питання буде переміщено, але ви можете зробити наступне

which javac

або

cd /
find . -name 'javac'

Мені подобається другий варіант - простий і корисний, якщо у вас є кілька JRE / JDK і хочете знайти їх усі.
Амос М. Карпентер

"find / -name 'javac" "набирає менше тексту, але вимагає права адміністратора (root) або ви отримаєте багато дозволів, яким заборонено користуватися.
Стівен Легко забавлений

9

Скористайтеся значком, щоб розмістити його. Це має бути /usrдесь під :

find /usr -name java

Під час виконання команди, якщо занадто багато повідомлень "Дозвіл відхилено", що обробляє фактично знайдені результати, просто переспрямуйте stderr на / dev / null

find /usr -name java 2> /dev/null

1
Якщо не root (адміністратор), ви отримаєте велику кількість повідомлень про заборону доступу.
Стівен Легко забавлений

7

Ще один найкращий спосіб знайти шлях до папки Java - це використання alternativesкоманди у Fedora Linux (я знаю, що це для Ubuntu, але я потрапив у цю публікацію з google лише за своїм заголовком). Просто хочу поділитися людьми, як я, шукаючи відповіді на аромат Fedora.

Відобразити всю інформацію про java

alternatives --display java

1
Це працювало для мене, повертаючись / usr / java / jdk- [версія] у Fedora
Sina Madani

3

Три кроковий процес: по-перше: відкрийте 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



1

команда: sudo update-alternatives --config javaзнайде повний шлях усіх встановлених версій Java


1

Це питання все ще видається актуальним, і відповідь здається рухомою ціллю.

У моїй системі 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 або навіть переключити постачальників.

Нормальна причина хотіти знати шлях полягає в тому, що якась програма хоче цього, і ви, мабуть, не хочете, щоб ця програма ламалася, тому що ви зробили оновлення, яке змінило номери версій.


0

на OpenSUSE 13.1 / 13.2 його: номер /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
версії може бути 1.7.x 1.8.x і т. д. Перевірте встановлену вами версію програмного забезпечення відьми.

Андре


0

В 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

0

Це найкращий спосіб, який працював для мене Виконання цієї команди: -

$(dirname $(readlink $(which javac)))/java_home
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.