Как изменить значение JAVA_HOME
в Ubuntu, чтобы оно указывало на Oracle Java?
Должен ли он указывать на java-6-sun
или java-6-sun-1.6.0.24
?
Как изменить значение JAVA_HOME
в Ubuntu, чтобы оно указывало на Oracle Java?
Должен ли он указывать на java-6-sun
или java-6-sun-1.6.0.24
?
Ставлю строчку:
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
файле.
oracle-java7-set-default
.
- person Melvyn; 23.03.2014
update-alternatives
в большинстве случаев, то я думаю, что лучший (= наименее плохой) вариант - поместить неустановленный JAVA_HOME в ~/.bashrc. Причина в том, что большинство программ пытаются самостоятельно определить правильный JAVA_HOME, если он не установлен, и одна из первых вещей, которые они пытаются сделать, это посмотреть, куда указывает исполняемый файл java. В остальном вы можете установить JAVA_HOME вручную. По-видимому, Java недостаточно важна для Ubuntu, чтобы поддерживать это из коробки: bugs.launchpad.net/ubuntu/+source/java-common/+bug/45348
- person Jakub Kotowski; 19.02.2015
Если вы хотите изменить его глобально и на системном уровне;
In
/etc/environment
добавьте эту строку:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOME
не разрешается при таком использовании PATH=$JAVA_HOME/bin
, пробовал перезапускать, безрезультатно. Должен ли я export
или set
JAVA_HOME
либо в этом файле, либо в моем профиле?
- person raffian; 30.05.2013
чтобы установить Oracle Java SE 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:
обратите внимание на звездочку перед цифрами слева и если правильная не установлена, выберите правильную, введя ее номер и нажав Enter. теперь проверьте свою 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, и оно работает в обоих случаях.
Если вы хотите, чтобы эта переменная среды была доступна всем пользователям и при запуске системы, вы можете добавить следующее в /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).
Ява 6
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
или джава 7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Если вы занимаетесь какой-либо разработкой, вам нужно указать на JDK (Java Development Kit). В противном случае вы можете указать на JRE (среда выполнения Java).
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::")
Если вы хотите использовать определенную версию Java, когда установлено несколько JDK, просто установка JAVA_HOME может не сработать.
Вам нужно использовать sudo update-alternatives --config java
для установки Java по умолчанию.
См. https://askubuntu.com/questions/121654/how-to-set-default-java-version.
См. это; бегать
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.
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment
- person Xdg; 31.05.2017