Где я могу найти Java SDK в Linux после его установки?
185
Я установил JDK с помощью apt-get install, но я не знаю, где находится моя папка jdk. Мне нужно установить путь для этого. У кого-нибудь есть подсказка о местоположении?
Это немного зависит от вашей системы пакетов ... если 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
orth просматривает также / usr / java на некоторых установках, которые я видел
jlb83
Если вы хотите добавить путь JDK в Android Studio, добавьте этот / usr / lib / jvm / java-8-oracle /
Rohit Rokde
3
Кажется , мой путь /usr/lib/jvm/java-7-openjdk-amd64.
Эйнверн
2
Я думаю, что readlink как данность является наиболее элегантным (и эффективным), но я предлагаю readlink -f $(which javac) - обратите внимание на 'c' на случай, если на одной и той же машине есть странное сочетание JDK и JRE. JDK включает в себя компилятор (javac), а JRE - нет. Однако, если путь неверен, это не удастся, и вы можете попробовать это: find /usr/java -wholename '*ava/jdk*' -pruneкак я заметил в комментарии ниже.
Стивен легко развлекается
@Winnemucca Это работает для меня, вы можете найти, где находится Java, а затем вы можете найти, где путь JDK.
Эйнверн
45
update-java-alternatives -l
скажет вам, какая реализация Java по умолчанию для вашей системы и где в файловой системе она установлена. Проверьте руководство для большего количества вариантов.
Это специфично для Debian (по крайней мере). Другие дистрибутивы могут не иметь этого
dequis
2
@dequis, это ответ, специфичный для Debian, поскольку упомянутый вопрос apt-getи дистрибутив будут Debian 2.6.26. AFAIK, он должен быть одинаковым для всех производных Debian.
forcefsck
2
Я просто указываю на это другим людям. Я знаю, что это действительно для этого конкретного вопроса.
Это на самом деле не указывает на полный 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.
Зомби
В Centos / RHL Это то, что я предпочитаю находить JDK (если он установлен), find /usr/java -wholename '*ava/jdk*' -prune но поведение зависит от того, говорите ли вы об OpenJDK или Oracle Java и как он был установлен в первую очередь.
Стивен легко развлекается
12
Этот вопрос будет перенесен, но вы можете сделать следующее
Мне нравится второй вариант - простой и полезный, если у вас есть несколько JRE / JDK и вы хотите найти их все.
Амос М. Карпентер
"find / -name 'javac'" менее набирает текст, но требует привилегий администратора (root), иначе вы получите много сообщений с отказом в разрешении.
Стивен легко развлекается
9
Используйте найти, чтобы найти его. Должно быть /usrгде-то под :
find /usr -name java
Если при запуске команды слишком много сообщений «Отказано в доступе», которые затемняют фактические найденные результаты, просто перенаправьте stderr в / dev / null
Если не root (admin), вы получите много сообщений об отказе в разрешении.
Стивен легко развлекается
7
Другой лучший способ найти путь к папке Java - использовать alternatives команду в Fedora Linux (я знаю, что это для Ubuntu, но я попал в этот пост из Google только по заголовку). Просто хочу поделиться тем, как люди, как я, ищут ответы на вкус Fedora.
Это сработало для меня, возвращая / usr / java / jdk- [версия] на Fedora
Сина Мадани
3
Трехэтапный процесс: во-первых: откройте терминал-> $ 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
Однако если вы действительно посмотрите туда, то увидите, что система пакетов разместила несколько каталогов и символических ссылок для упрощения будущего обслуживания.
Фактический каталог 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 и т. д. проверьте версию установленного вами программного менеджера ...
/usr/local/java/
для оригинальных загруженных дистрибутивов Oracle.Ответы:
Это немного зависит от вашей системы пакетов ... если
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
источник
/usr/lib/jvm/java-7-openjdk-amd64
.readlink -f $(which javac)
- обратите внимание на 'c' на случай, если на одной и той же машине есть странное сочетание JDK и JRE. JDK включает в себя компилятор (javac), а JRE - нет. Однако, если путь неверен, это не удастся, и вы можете попробовать это:find /usr/java -wholename '*ava/jdk*' -prune
как я заметил в комментарии ниже.скажет вам, какая реализация Java по умолчанию для вашей системы и где в файловой системе она установлена. Проверьте руководство для большего количества вариантов.
источник
apt-get
и дистрибутив будутDebian 2.6.26
. AFAIK, он должен быть одинаковым для всех производных Debian.должен дать вам что-то вроде
источник
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 и как он был установлен в первую очередь.Этот вопрос будет перенесен, но вы можете сделать следующее
или
источник
Используйте найти, чтобы найти его. Должно быть
/usr
где-то под :Если при запуске команды слишком много сообщений «Отказано в доступе», которые затемняют фактические найденные результаты, просто перенаправьте stderr в / dev / null
источник
Другой лучший способ найти путь к папке Java - использовать
alternatives
команду в Fedora Linux (я знаю, что это для Ubuntu, но я попал в этот пост из Google только по заголовку). Просто хочу поделиться тем, как люди, как я, ищут ответы на вкус Fedora.Для отображения всей информации о Java
источник
Трехэтапный процесс: во-первых: откройте терминал->
$ 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
источник
Просто попробуйте:
Это / usr / local / java / jdk [версия]
источник
команда:
sudo update-alternatives --config java
найдет полный путь всех установленных версий Javaисточник
Этот вопрос все еще кажется актуальным, и ответ, кажется, движущаяся цель.
В моей системе Debian (Buster):
Однако если вы действительно посмотрите туда, то увидите, что система пакетов разместила несколько каталогов и символических ссылок для упрощения будущего обслуживания.
Фактический каталог
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, в частности имена пакетов:
После установки они находятся в:
/usr/lib/jvm
Чтобы выбрать местоположение / каталог полной JDK разработки (которая отличается от простой JRE среды выполнения), найдите записи:
Вот два хороших варианта, это ссылки на конкретные версии, где вам нужно будет выбрать версию:
источник
Это лучший способ, который работал для меня Выполнить эту команду: -
источник