Как определить, куда установлена Java в CentOS 6.5?
а там уже будет ясно. Скорее всего на уровень выше просто подняться по пути.
Отслеживать
34.4k 15 15 золотых знаков 65 65 серебряных знаков 94 94 бронзовых знака
ответ дан 21 мая 2015 в 15:06
VladimirAbramov VladimirAbramov
851 5 5 серебряных знаков 12 12 бронзовых знаков
Если программа java установлена из дистрибутивного пакета — то переопределять эти переменные для её функционирования не требуется.
Если же установлена каким-то иным методом — уточняйте необходимую информацию в инструкции по установке.
Отслеживать
10.5k 7 7 золотых знаков 30 30 серебряных знаков 53 53 бронзовых знака
ответ дан 3 авг 2015 в 1:32
aleksandr barakin aleksandr barakin
67.9k 216 216 золотых знаков 77 77 серебряных знаков 219 219 бронзовых знаков
ls -alFh /etc/alternatives | grep bin/java
Отслеживать
3,179 21 21 серебряный знак 44 44 бронзовых знака
ответ дан 21 мая 2015 в 9:44
Giga Kokaia Giga Kokaia
121 4 4 бронзовых знака
Постарайтесь не ограничиваться в ответе, добавьте пояснения. PS: Это не является решением вопроса, так как при установке Oracle Java из тарболла по указанному пути ничего не будет. Проверено на боевом сервере!
21 мая 2015 в 10:03
- java
- linux
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как прописать путь до Java в исполняемом файле .sh
Добрый день форумчане, на Ubuntu 20.04 есть приложение которое использует Java 8, запускается оно через файл start.sh в котором прописаны конфиги, на самой машине пришла необходимость по умолчанию использовать Java 16. Теперь приложение которое использует Java 8 по умолчанию обращается через Java 16, как правильно в файле start.sh прописать чтобы это приложение использовало Java 8?
P/S Погуглив везде рассказывают о том как установить определённую Java по умолчанию или для определённого пользователя.

Mooks
15.07.21 11:37:46 MSK

Ты можешь напрямую дёргать бинарь java:
#!/bin/sh /usr/local/openjdk8/bin/java -jar ./path/to/your.jar $*
Пути поправишь как надо, в Ubuntu они другие.
mord0d ★★★★★
( 15.07.21 11:41:14 MSK )

iZEN ★★★★★
( 15.07.21 11:46:06 MSK )
Ответ на: комментарий от iZEN 15.07.21 11:46:06 MSK

Разве эта переменная не для обёртки-«переключателя» java?
mord0d ★★★★★
( 15.07.21 12:25:49 MSK )
Стандартов тут нет, поэтому универсальный ответ — изучай файл start.sh и разбирайся, как там устроен поиск java.
Обычно используют JAVA_HOME, если он не задан, то ищут java в $PATH . Поэтому для надёжности можно сделать так:
export JAVA_HOME="xxx" PATH="$JAVA_HOME/bin":$PATH ./start.sh
Скорей всего этого хватит. Может быть и одного из этих пунктов хватит.
Legioner ★★★★★
( 15.07.21 13:25:59 MSK )
У меня установлена Java 8. С ней падает лаунчер Minecraft на процессорах AMD Athlon II, Phenom II и AMD FX. Падает с ошибкой Webkit, а вернее библиотеки из состава Java, реализующей отображение веб-контента.
То же самое с Java 7. Только с Java 6 лаунчер нормально работает.
Я запускаю его так:
#!/bin/sh /home/zenitur/bin/jre1.6.0_45/bin/java -jar /home/zenitur/bin/launcher.jar
А сама игра запускается с Java 8 (можно в настройках профиля указать путь к Java 8, но по-моему там изначально так и было).
ZenitharChampion ★★★★★
( 15.07.21 13:49:14 MSK )

Просто замени в скрипте путь к бинарнику Java, укажи конкретно путь к Java 8.
Kron4ek ★★★★★
( 15.07.21 13:51:20 MSK )
Ответ на: комментарий от Kron4ek 15.07.21 13:51:20 MSK

Дак в том то и вопрос поста, как правильно это прописать)
Mooks
( 15.07.21 13:59:06 MSK ) автор топика
Ответ на: комментарий от Mooks 15.07.21 13:59:06 MSK

В скрипте, скорее всего, просто бинарник «java» вызывается. Заменяшь «java» на «/usr/lib/jvm/java-8-openjdk/jre/bin/java», или где у тебя там Java 8 лежит. Готово.
Kron4ek ★★★★★
( 15.07.21 14:13:59 MSK )
Ответ на: комментарий от Legioner 15.07.21 13:25:59 MSK

Так вроде получилось, благодарю!
Где я могу найти Java SDK в Linux?
Я установил JDK, используя apt-get install. Я не знаю, где находится моя папка jdk. Мне нужно установить путь для этого. Кто-нибудь знает о местоположении?
dinesh707 09 март 2011, в 20:00
Поделиться
Какой дистрибутив Linux вы используете?
Darius Kucinskas 09 март 2011, в 19:50
Распространение Linux: Debian 2.6.26
dinesh707 09 март 2011, в 19:55
Попробуйте /usr/local/java/ для оригинальных загруженных дистрибутивов Oracle.
Zon 22 янв. 2018, в 08:58
Показать ещё 1 комментарий
Поделиться:
11 ответов
Лучший ответ
Это немного зависит от вашей системы пакетов. если команда 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/ для Sun JDK (и других реализаций, Я думаю).
Для любого данного пакета вы можете определить, какие файлы он устанавливает и где он устанавливает их, запросив dpkg. Например, для пакета ‘openjdk-6-jdk’: dpkg -L openjdk-6-jdk
Paŭlo Ebermann 09 март 2011, в 21:46
Поделиться
orth смотрит в / usr / java на некоторых установках, которые я видел
jlb83 12 нояб. 2014, в 14:52
Если вы хотите добавить путь JDK в Android Studio, добавьте этот / usr / lib / jvm / java-8-oracle /
Rohit Rokde 05 апр. 2016, в 10:39
Кажется, мой путь — /usr/lib/jvm/java-7-openjdk-amd64 .
einverne 01 май 2016, в 08:04
Я думаю, что readlink как данность является наиболее элегантной (и эффективной), но я предлагаю readlink -f $(which javac) — обратите внимание на ‘c’ в случае, если на одной и той же машине есть странное сочетание JDK и JRE. JDK включает в себя компилятор (javac), а JRE — нет. Однако, если путь неправильный, это не удастся, и вы можете попробовать это: find /usr/java -wholename ‘*ava/jdk*’ -prune как я отмечаю в комментарии ниже.
Steven the Easily Amused 30 сен. 2016, в 23:11
@einverne Это сработало для вас?
Winnemucca 24 апр. 2017, в 16:40
@Winnemucca Это работает для меня, вы можете найти, где находится Java, а затем вы можете найти, где путь JDK.
einverne 05 июнь 2017, в 10:20
в файле zoo.cfg убедитесь, что вы добавили поле initLimit=10 или initLimit=20 , это поможет, в первую очередь, при первом запуске zookeper
Manoj Kalluri 25 нояб. 2017, в 18:33
Показать ещё 5 комментариев
update-java-alternatives -l
сообщит вам, какая реализация Java является стандартной для вашей системы и где в файловой системе она установлена. Подробнее см. Руководство.
forcefsck 09 март 2011, в 20:54
Поделиться
Это специфично для Debian (по крайней мере). Другие дистрибутивы могут не иметь этого
dequis 21 окт. 2014, в 02:26
@dequis, это ответ, специфичный для debian, поскольку в вопросе упоминается apt-get и дистрибутив Debian 2.6.26 . AFAIK, он должен быть одинаковым для всех производных Debian.
forcefsck 21 окт. 2014, в 12:09
Я просто указываю на это другим людям. Я знаю, что это действительно для этого конкретного вопроса.
dequis 22 окт. 2014, в 06:34
обновление-альтернативы — список | grep java работал на меня на RHEL
Upen 19 фев. 2019, в 06:41
Показать ещё 2 комментария
$ which java
должен дать вам что-то вроде
/usr/bin/java
The Surrican 09 март 2011, в 21:17
Поделиться
Это будет работать, только если оно уже на пути.
Brent Worden 09 март 2011, в 19:52
правда. Бьюсь об заклад, это после apt-get установки
The Surrican 09 март 2011, в 19:54
Это на самом деле не указывает на полный 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.
Zombies 19 янв. 2016, в 07:37
В Centos / RHL Это то, что я предпочитаю находить в JDK (если он установлен) find /usr/java -wholename ‘*ava/jdk*’ -prune Но поведение зависит от того, говорите ли вы об OpenJDK или Oracle Java и как он был установлен на первом месте.
Steven the Easily Amused 30 сен. 2016, в 23:04
Показать ещё 2 комментария
Этот вопрос будет перемещен, но вы можете сделать следующее
which javac
cd / find . -name 'javac'
Andrew T Finnell 09 март 2011, в 21:02
Поделиться
Мне нравится второй вариант — простой и полезный, если у вас есть несколько JRE / JDK и вы хотите найти их все.
Amos M. Carpenter 19 фев. 2015, в 02:49
«find / -name ‘javac'» менее набирает текст, но требует привилегий администратора (root), иначе вы получите много сообщений с отказом в разрешении.
Steven the Easily Amused 30 сен. 2016, в 22:54
Еще один лучший способ найти путь к папке Java — использовать команду alternatives в Fedora Linux (я знаю ее для Ubuntu, но я ударил это сообщение из Google только своим заголовком). Просто хочу поделиться такими людьми, как я, ища ответы на вкус fedora.
Чтобы отобразить всю информацию о java
alternatives --display java
iankits 13 май 2015, в 17:27
Поделиться
Это сработало для меня, вернув / usr / java / jdk- [версия] в Fedora
Sina Madani 19 март 2018, в 15:08
Используйте найти, чтобы найти его. Должно быть где-то в /usr :
find /usr -name java
Если при выполнении команды слишком много сообщений «Отказано в доступе», которые затемняют фактические найденные результаты, просто перенаправьте stderr в /dev/null
find /usr -name java 2> /dev/null
Brent Worden 09 март 2011, в 20:10
Поделиться
Если вы не root (admin), вы получите много сообщений об отказе в разрешении.
Steven the Easily Amused 30 сен. 2016, в 22:56
Трехэтапный процесс: во-первых: откройте 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
Anubhav Gupta 28 март 2018, в 13:17
Поделиться
Он/ usr/local/java/jdk [версия]
Ashansu Pant 03 нояб. 2015, в 17:38
Поделиться
команда: sudo update-alternatives —config java найдет полный путь для всех установленных версий Java
Hasan 02 окт. 2017, в 13:22
Поделиться
Этот вопрос все еще кажется актуальным, и ответ, кажется, движущаяся цель.
В моей системе 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 , с другой символической java-11-openjdk-amd64 default-java . Существует также openjdk-11 , но он содержит только файл source.zip.
Учитывая это, ТОЛЬКО для Debian, я бы предположил, что лучшим значением для использования является /usr/lib/jvm/default-java , так как это всегда должно быть допустимо, даже если вы решите установить совершенно другую версию Java или даже переключиться поставщики.
Обычная причина, по которой вам нужно знать путь, заключается в том, что какое-то приложение хочет его, и вы, вероятно, не хотите, чтобы это приложение сломалось, потому что вы выполнили обновление, которое изменило номера версий.
Установка Java в Linux
Java — популярный язык программирования, разработанный в компании Sun Microsystems, ныне принадлежащей корпорации Oracle. Java занимает лидирующие позиции в мире языков программирования. Многие программы, разработанные для Linux намного лучше выполняются с использованием проприетарной версии Java.
В данной статье будет рассмотрена установка JRE (Java Runtime Environment) и JDK (Java Development Kit) 8 версии on Oracle на дистрибутивы Ubuntu 20.04, CentOS 8 и Arch Linux. Также будет рассмотрен выбор необходимой среды по умолчанию.
Чем отличается JDK от JRE
- JRE — Java Runtime Environment — это среда выполнения Java. Предназначена для обычного использования. Позволяет запускать приложения, написанные на языке Java.
- JDK— Java Development Kit — стандартная версия платформы Java, предназначенная для разработки. Это специальный пакет разработчика, в который входят документация, различные утилиты, компилятор, библиотеки классов, а также сама JRE.
Установка Java в Ubuntu
JRE
Для начала необходимо скачать архив с официального сайта Oracle выбрав пакет с именем Linux x64 если используется 64 битная система или выбрать пакет с именем Linux если используется 32 битная система:

Далее скачанный архив необходимо переместить в любую директорию и распаковать. В качестве примера будет выбрана директория /usr/java/ Предварительно данную директорию необходимо создать при помощи команды:
sudo mkdir /usr/java/

Для перемещения архива необходимо выполнить следующую команду:
sudo mv ~/Downloads/jre-8u311-linux-x64.tar.gz /usr/java/

Где символ ~ (тильда) означает домашнюю директорию пользователя. Далее перейдите в директорию /usr/java и распакуйте архив при помощи команды:
sudo tar -xzvf jre-8u311-linux-x64.tar.gz

Далее системе необходимо указать, где находятся установочные файлы Java. Для этого необходимо создать символическую ссылку в каталоге /usr/bin/ которая будет ссылаться на установочную директорию /usr/java/jre1.8.0_311 Для этого необходимо выполнить команду:
sudo update-alternatives —install «/usr/bin/java» «java» «/usr/java/jre1.8.0_311/bin/java» 1

После этого можно проверить версию Java выполнив команду:

JDK
Загрузите архив со средствами разработки с официального сайта компании Oracle. Необходимо выбрать раздел Linux и найти пакет с именем jdk-8u311-linux-aarch64.tar.gz:

Далее необходимо поставить галочку напротив пункта I reviewed and accept the Oracle Technology Network License Agreement for Oracle Java SE тем самым подтверждая принятия условия лицензионного соглашения.

Для скачивания файла необходимо войти в свою учетную запись Oracle или создать новую, только после этого начнется загрузка архива.
В качестве примера также будет выбрана директория /usr/java. Предварительно данная директория должна быть создана. Перенесите архив в директорию /usr/java:
sudo mv ~/Downloads/jdk-8u311-linux-x64.tar.gz /usr/java

Далее перейдите в директорию /usr/java и распакуйте архив:
sudo tar -xzvf jdk-8u311-linux-x64.tar.gz

Так же, как и при настройке JRE необходимо указать, где находятся установочные файлы Java. Для этого необходимо создать символическую ссылку в каталоге /usr/bin/ которая будет ссылаться на установочную директорию /usr/java/jdk1.8.0_311. Для этого необходимо выполнить команду:
sudo update-alternatives —install /usr/bin/java java /usr/java/jdk1.8.0_311/bin/java 1

Переменные окружения
Многие программы используют переменную среды JAVA_HOME для того, чтобы определить расположение установки Java. Чтобы установить эту переменную для всех пользователей, сначала необходимо узнать, где именно хранится установка Java. Для этого необходимо выполнить команду:
sudo update-alternatives —config java

В данном случае в системе установлены JRE и JDK одновременно. Поэтому присутствует 2 пути:
- /usr/java/jdk1.8.0_311/bin/java
- /usr/java/jre1.8.0_311/bin/java
Выберите нужный тип Java и скопируйте путь необходимой версии и откройте файл /etc/environment в любом текстовом редакторе (например nano):
sudo nano /etc/environment

Необходимо добавьте строку с путём установки JRE или JDK в конец этого файла:

Сохраните и закройте файл. Чтобы применить настройки, необходимо перейти в учётную запись root далее перечитать файл выполнив в терминале команду:
Установка Java в Arch Linux
JRE
В официальных репозиториях Arch Linux присутствует только OpenJDK, в то время как проприетарная JRE присутствует только в пользовательских репозиториях aur. Для установки JRE необходимо перейти по ссылке официальной страницы JRE в репозитории aur и найти ссылку на GIT репозиторий программы в поле Git Clone URL:

Далее необходимо склонировать данный репозиторий при помощи команды:
git clone https://aur.archlinux.org/jre8.git

Перейдите в скачанный репозиторий:
Для установки JRE необходимо выполнить команду:

При появлении фразы Proceed with installation? [Y/n] введите y и нажмите на клавишу Enter:

Установка JRE завершена.
JDK
Как и JRE JDK так же присутствует только в пользовательском репозитории aur. Несмотря на то, что установочный процесс совпадает с установкой JRE, у установки JDK есть одна особенность — с тех пор как пакеты JDK расположенные на сайте Oracle требует авторизации на сайте необходимо заранее скачать пакет JDK иначе установщик выдаст ошибку.
Перейдите на официальный сайт Oracle найдите и скачайте архив с именем jdk-8u301-linux-x64.tar.gz:

Далее склонируйте репозиторий с JDK выполнив команду:
git clone https://aur.archlinux.org/jdk8.git

Переместите ранее скачанный архив в только что склонированный репозиторий при помощи команды:
mv Downloads/jdk-8u301-linux-x64.tar.gz jdk8/
Где Downloads — директория куда был скачен архив, а jdk8/— директория с самим JDK. Перейдите в директорию с JDK и запустите команду для установки:

При появлении фразы Proceed with installation? [Y/n] введите y и нажмите на клавишу Enter:

После этого установка JDK будет завершена.
Установка Java в CentOS 8
JRE
Для RHEL дистрибутивов, таких как, CentOS, Fedora, RedHat и OpenSUSE есть официальный RPM-пакет. Для начала необходимо скачать пакет с официального сайта Oracle выбрав пакет с именем Linux x64 RPM если используется 64 битная система или выбрать пакет с именем Linux x64 RPM если используется 32 битная система:

Чтобы установить пакет необходимо выполнить команду в терминале:
sudo rpm -i jre-8u311-linux-x64.rpm

После установки можно проверить версию JRE при помощи команды:

JDK
Средства для разработчиков также можно скачать с официального сайта Oracle выбрав пакет с именем jdk-8u311-linux-x64.rpm для 64 битной системы и выбрав пакет с именем jdk-8u311-linux-i586.rpm для 32 битной системы:

Для установки из терминала, необходимо выполнить команду:
sudo rpm -i jdk-8u311-linux-x64.rpm

Для просмотра версии JDKнеобходимо выполнить команду:

Выбор версии Java по умолчанию
Ubuntu 20.04
Для начала необходимо вывести список всех установленных версий Java в системе. Для этого необходимо выполнить команду:
sudo update-alternatives —config java

Если у в вас системе установлено несколько версий Java можно выбрать ту, которая будет использоваться по умолчанию. Так как на данный момент в системе присутствует только 8 версия Java то выбирать версию нет необходимости. Если в системе одновременно присутствуют 2 и более версии, то для выбора версии по умолчанию необходимо ввести цифру, которая будет располагаться напротив нужной версии.
ArchLinux
Для начала просмотрите список установленных сред при помощи команды:
archlinux -java status

Далее установите необходимую версию:
sudo archlinux -java set имя_среды
sudo archlinux-java set java-8-jdk

Для проверки версии JDK необходимо выполнить команду:

Для проверки версии JRE необходимо выполнить команду:

CentOS 8.2
Выбрать необходимую версию Java можно с помощью команды ниже (так же, как и в Ubuntu). Необходимо выбрать цифру, соответствующую номеру версии:
sudo update-alternatives —config java

Выводы
В данной статье показан процесс установки и настройки Java в различных дистрибутивах Linux. Если остались вопросы, спрашивайте в комментариях!