Как найти путь, где установлен JDK?

34

Я установил jdk1.7.0.rpmпакет в RHEL6.
Где я могу найти путь для выполнения моей первой Java-программы?

Мухаммед Фейсал
источник
2
Возможный дубликат 18472 года
Сакиск
2
Привет, Мухаммед. Это не глупый вопрос, но тот, на который уже отвечали в нескольких местах - как этот или этот вопрос .
rozcietrzewiacz
Просто PS: на MacOS Java обычно устанавливается в «/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home», где номер версии может отличаться.
Даниэль Ван

Ответы:

48

Попробуйте любой из двух:

$ который Ява

$ whereis java

Для вашей первой Java-программы прочитайте этот урок:

"Привет, мир!" для ОС Solaris и Linux

Sadique
источник
Обратите внимание, что эти команды дают разные результаты. Если вы заинтересованы в пути без символьных ссылок, используйте whereis java.
P.Brian.Mackey
Я не думаю, что это отвечает на вопрос. javaДвоичный инсталлируются с JRE, но если вы разрабатываете вам нужен JDK, который не обязательно установлен в which java(в моем случае это / USR / BIN).
Тим С.
12

Вы можете перечислить установленные файлы с

rpm -ql packagename

Вы увидите где-нибудь binкаталог сjava executable

Но если RPM JDK был правильно установлен, вы уже должны найти свой javaпуть.

Пытаться

javac MyFirstJavaClass.java

и если все компилируется

java MyFirstClass

(Если вы ничего не меняли, текущий каталог .уже должен быть в вашем пути к классам)

Matteo
источник
Это должен быть принятый ответ ИМО.
Тим С.
8

Поскольку этот вопрос RPM конкретно, rpmэто способ , чтобы начать работу (как ответил на @Matteo ).

флаги об / мин

-q is short for --query
-l is short for --list

пример

rpm -ql jdk1.8.0_20 | grep "jdk1.8.0_20/bin$"
/usr/java/jdk1.8.0_20/bin

Знание этого может быть желательным для установки пользовательской или прикладной $JAVA_HOMEпеременной. Это часто бывает необходимо , когда система имеет несколько версий Java , установленные или несколько дистрибутивов Java установлены, такие как OpenJDK и Oracle / Sun .

$JAVA_HOME пример

В ~/.bash_profileили связанном файле ( .bashrc, .zshrc, .cshrc, setenv.sh), может быть использовано что - то похожее на ниже.

JAVA_HOME='/usr/java/jdk1.8.0_20'
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"
export PATH

Если вам нужен больший контроль над тем, где устанавливается Java, например, in /opt, тогда вместо RPM-файла можно использовать tarball.


Другие подобные вопросы, спрашивают о том, как найти любой бинарный файл или файл, в общем случае.

Kevin
источник
В общем, я настоятельно рекомендую использовать пакет mlocate для поиска файлов в файловой системе Linux на базе Red Hat.
Кевин
7

На RHEL7 я использовал

locate openjdk

и это привело меня к /usr/lib/jvm/каталогу, который содержал каталоги:

java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/
jre/
jre-1.8.0/
jre-1.8.0-openjdk/
jre-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/
jre-openjdk/

Каждый из них содержит bin/java

Чтобы найти полный путь символической ссылки, используйте:

readlink -f $(which java)

* Кредит: ответ на переполнение стека

** Примечание: я отвечаю здесь, так как это был первый результат в Google

r17n
источник
Это дало мне в основном JDK6, хотя java -versionдало мне 1,8. Была одна ссылка на папку JDK8 в верхней части.
Нумен