Как установить java локально - нет root - на linux, если это возможно?

Мне нужен java 1.7, а сервер получил только 1.6. У меня нет привилегий root. Я пытался что-то сделать, но похоже, что никто этого не делал. Могу ли я каким-то образом скомпилировать его или получить готовые двоичные файлы, чтобы я мог поместить их в свой PATH. Не могли бы вы помочь? Система Redhat.

Ответ 1

Это довольно просто...

Загрузите JDK в качестве tarball из Oracle (простой поиск в Google даст ссылку).

Разархивируйте его где-нибудь в $HOME (например, $HOME/jdk).

Установить JAVA_HOME на путь установки JDK корня; затем добавьте $JAVA_HOME/bin к вашему PATH.

И вы уходите.


Здесь у меня есть определенный параметр, поскольку я запускаю три разные основные версии JDK: 6, 7, 8. Например, вот мой исходный файл для установки текущей оболочки на использование Java 8:

$ cat ~/.jdk/8
export JAVA_HOME=/opt/sunjdk/1.8/current
export PATH="$JAVA_HOME/bin:$PATH"

И в /opt/sunjdk/1.8 (учитывая, что /opt/sunjdk доступен для записи моим пользователем, поэтому мне не нужно быть root):

$ ls -l /opt/sunjdk/1.8/* -d
lrwxrwxrwx 1 fge fge  11 Oct 30 10:09 /opt/sunjdk/1.8/current -> jdk1.8.0_25
drwxr-xr-x 1 fge fge 274 Mar 18  2014 /opt/sunjdk/1.8/jdk1.8.0_05
drwxr-xr-x 1 fge fge 274 Sep 18 02:44 /opt/sunjdk/1.8/jdk1.8.0_25

(и да, я был root для начала, чтобы предоставить разрешения на запись для /opt/sunjdk для "моего" пользователя, если у вас нет такой свободы, просто создайте другой каталог в своем доме)

Ответ 2

Oracle предлагает JRE и JDK также как *.tar.gz для Linux. Обычно я успевал просто загрузить такой пакет, расстегнуть/разархивировать его (tar -xzvf jdk-8u25.tar.gz), а затем запустить его, используя абсолютный путь.

Ответ 3

экспорт JAVA_HOME =/opt/sunjdk/1.8/current
export PATH = "$ JAVA_HOME/bin: $PATH"

Для меня эта опция работает только тогда, когда я изменил linux, чтобы использовать bash вместо ksh. Я не знаю, является ли это какой-то конфигурацией в моей компании, но когда я попытался выполнить через ksh с помощью команды "set" вместо "export", чтобы определить путь, он был правильно установлен на пути к моей новой установке Java, но когда я набрал which java, была показана старая версия. Но когда я выполнил bash и набрал "export", он сработал. Итак, если у кого-то есть такая же проблема, чтобы настроить его с помощью команды set, попробуйте использовать bash с командой export. Я использую Redhat 6.2.