Как установить Oracle Java в качестве Java по умолчанию в Ubuntu? - PullRequest
130 голосов
/ 25 июня 2011

Как мне изменить значение JAVA_HOME в Ubuntu, чтобы оно указывало на Oracle Oracle?

Должно ли оно указывать на java-6-sun или java-6-sun-1.6.0.24?

Ответы [ 8 ]

171 голосов
/ 25 июня 2011

Я поставил строку:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

в моем ~/.bashrc файле.

/usr/lib/jvm/java7-oracle должно быть символической ссылкой, указывающей на /usr/lib/jvm/java-7-oracle-[version number here].

Причина, по которой это символическая ссылка, заключается в том, что в случае появления новой версии JVM вам не нужно обновлять файл .bashrc, он должен автоматически указывать на новую версию.

Если вы хотите установить переменные окружения JAVA_HOME глобально и на системном уровне, значит, их следует использовать в файле / etc / environment .

165 голосов
/ 06 ноября 2012

Если вы хотите изменить его глобально и на системном уровне;

В

/etc/environment

добавьте эту строку:

JAVA_HOME=/usr/lib/jvm/java-7-oracle
49 голосов
/ 14 мая 2014

, чтобы установить Oracle SE Development Development Kit в качестве системного Java по умолчанию, просто загрузите последнюю версию Java SE Development Kit из здесь , затем создайте каталог в своей файловой системе, например, /usr/java, теперь извлекитефайлы, которые вы только что загрузили в этот каталог:

$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java

сейчас, чтобы установить переменную окружения JAVA_HOME:

$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000

, убедитесь, что java Oracle установлен как java по умолчанию:

$ update-alternatives --config java

вы получите что-то похожее на это:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /opt/java/jdk1.8.0_05/bin/java                  20000     auto mode
  1            /opt/java/jdk1.8.0_05/bin/java                  20000     manual mode
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode

Press enter to keep the current choice[*], or type selection number:

обратите внимание на звездочку перед числами слева, и если правильная не установлена, выберите правильную, набрав числоэто и нажав ввод.Теперь проверьте вашу Java:

$ java -version

если вы получите что-то вроде следующего, вы можете пойти:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

также обратите внимание, что вам может потребоваться разрешение root или быть в группе sudoersчтобы иметь возможность сделать это.Я протестировал это решение как на ubuntu 12.04, так и на Debian wheezy, и оно работает на них обоих.

19 голосов
/ 25 июня 2011

Если вы хотите, чтобы эта переменная среды была доступна всем пользователям и при запуске системы, вы можете добавить следующее в / etc / profile.d / java.sh (создайте его при необходимости):

export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

Затем в терминале запустить:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Мой второй вопрос - должен ли он указывать на java-6-sun или java-6-sun-1.6.0.24?

Он всегда должен указывать на java-7-oracle как символическую ссылку на последнюю установленную версию (при условии, что вы установили Java из репозиториев Ubuntu, а теперь - из загрузки, доступной на oracle.com).

12 голосов
/ 29 ноября 2013

Ява 6

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64

или Java 7

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64

9 голосов
/ 14 марта 2014

Если вы занимаетесь какой-либо разработкой, вам нужно указать на JDK (Java Development Kit).В противном случае вы можете указать на JRE (Java Runtime Environment).

JDK содержит все, что есть в JRE, и даже больше.Если вы просто выполняете программы на Java, вы можете указать либо на JRE, либо на JDK.

Вы должны установить JAVA_HOME в зависимости от текущей используемой вами Java.readlink напечатает значение символической ссылки для текущей Java, а sed установит его в каталог JRE:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

Если вы хотите настроить JAVA_HOME для JDK, вам нужно перейти на одну папку больше:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
7 голосов
/ 27 января 2014

Если вы хотите использовать определенную версию Java, когда установлено несколько JDK, просто настройка JAVA_HOME может не работать.

Вам необходимо использовать sudo update-alternatives --config java для установки Java по умолчанию.

См. https://askubuntu.com/questions/121654/how-to-set-default-java-version.

4 голосов
/ 10 февраля 2016

См. это ; пробег

sudo  update-java-alternatives --list

, чтобы вывести список всех установок Java на компьютере по имени и каталогу, а затем запустить

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

, чтобы выбрать, какой JRE / JDK использовать.

Если вы хотите использовать разные JDK / JRE для каждой задачи Java, вы можете запустить альтернативы обновления для настройки одного исполняемого файла Java за раз; вы можете запустить

sudo  update-alternatives --config java[Tab]

чтобы увидеть команды Java, которые можно настроить (java, javac, javah, javaws и т. Д.). И тогда

sudo  update-alternatives --config [javac|java|javadoc|etc.]

свяжет эту задачу / команду Java с конкретным JDK / JRE.

Вам также может понадобиться установить JAVA_HOME для некоторых приложений: с этот ответ вы можете использовать

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

для JRE или

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

для JDK.

...