Как установить версию Java по умолчанию?

Я следовал всем инструкциям, изложенным в этом вопросе, но столкнулся с некоторыми проблемами в последней части.

У меня фактически есть версия 6.22 Java и я хотел бы обновить до версии 6.30.

Итак, после перемещения извлеченного каталога java-6-oracle в /usr/lib/jvm Я не знаю, что делать, так как сценарий, который указан в ответе выше, обновляется с java 5 до java 6.

Для ясности здесь вывод, если я делаю ls в рубрике /usr/lib/jvm:

matteo @ matteo-ThinkPad-SL: / usr / lib / jvm $ ls -l

всего 8

lrwxrwxrwx 1 root root 14 2011-07-12 15:18 default-java -> java-6-openjdk

lrwxrwxrwx 1 root root 14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk

drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle

drwxr-xr-x 7 root root 4096 2012-02-24 14:43 java-6-openjdk

Что мне теперь делать?


ДОБАВЛЕННАЯ ЧАСТЬ

По предложению @fossfreedom я все равно запустил скрипт и фактически обновил java-версию.

Infact, если я запускаю команду java -version Outpu будет следующим:

matteo@matteo-ThinkPad-SL:~$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

Есть еще проблема, если Ирун javac -version это дает мне старую версию, установленную:

matteo@matteo-ThinkPad-SL:~$ javac -version
javac 1.6.0_22

И если я использую тестер по этой ссылке, он скажет мне, что версия

Java Version 1.6.0_22 from Sun Microsystems Inc.

Что не так?

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

Как я могу их обновить?


ДРУГАЯ ДОБАВЛЕННАЯ ЧАСТЬ

sudo update-alternatives --config java вернет следующий вывод

matteo@matteo-ThinkPad-SL:~$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

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

это имеет смысл с тем фактом, что JRE правильно обновлена ​​до версии 6.31, проблемы связаны с компилятором Java и плагином браузера Java.

Есть идеи?

8 ответов

Решение

Ваш первый вопрос:

возможно, вас смущает, что скрипт webupd8 равен 0.5b. Это версия скрипта - это не относится к версии Java.

В дополнение к настройке версии Javac.

Я подозреваю, что вам нужно явно указать путь к компилятору javac

т.е.

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

с последующим:

sudo update-alternatives --config javac

Что касается настройки плагина Java Chrome.

Основной вопрос:

Как мне установить Oracle JDK 6?

включает в себя эту информацию - так как ваша структура папок немного отличается, ваша команда ссылки должна быть:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Увидеть это; бежать

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.

Я думаю, вы должны взглянуть на update-java-alternatives команда от java-common пакет и *.jinfo файлы, используемые им. При этом вы сможете полностью переключаться между установками Java (независимо от JDK, JRE, ...).

В Ubuntu/ Linux вы можете переключить версию Java, используя

update-alternatives --config java

Но перед этим вам нужно установить версию.

Вы можете использовать этот скрипт (./install-java.sh) для установки нескольких JVM

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
 jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
 schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
 --install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)

echo "RUN update-alternatives --config java"

Поместите этот скрипт в папку, где распакованы JVM, и запустите:

/opt/install-java.sh

Следующее использование:

update-alternatives --config java

Если вы собираетесь вручную установить альтернативы для javac javaws javadoc или любых других связанных с java команд, вы можете сделать их рабами альтернативы java.

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

java - лучшая версия ссылки в автоматическом режиме - /opt/jdk1.8.0_74/bin/java ссылка в настоящее время указывает на /opt/jdk1.8.0_74/bin/java ссылка java - это / usr / bin / java ведомый javadoc - /usr/bin/javadoc /opt/jdk1.8.0_74/bin/java - javadoc подчиненного приоритета 0: /opt/jdk1.8.0_74/bin/javadoc

Измените /opt/jdk1.8.0_74/ на каталог, в котором установлен ваш jdk.

Если вам нужно, например, автоматически переключиться на Java 8 (компилятор 1.8), в однострочном режиме, например, для скрипта или набора тестов непрерывной интеграции, вы можете запустить

      sudo update-java-alternatives -s $(sudo update-java-alternatives -l | grep 8 | cut -d " " -f1) || echo '.'

Он автоматически выберет любую доступную версию Java 8 и установит ее с помощью команды .

The в конце просто гарантирует, что команда вернет успех, потому что странно по умолчанию возвращает ошибку (1). Вы можете пропустить его, если он вам не нужен для набора тестов.

Если вы хотите переключиться на любую другую версию, просто замените по версии, которую вы хотите в предыдущей команде.

Версия Java по умолчанию, используемая системой Ubuntu.
update-alternatives --config java

Javac по умолчанию, используемый Ubuntu.
update-alternatives --config javac

Приложения, использующие переменную среды $JAVA_HOME для поиска пути Java (jre или jdk).
export JAVA_HOME=/usr/lib/jvm/java-20-openjdk-amd64

Открыто /etc/environment в любом текстовом редакторе и добавьте следующую строку:

JAVA_HOME="usr/lib/jvm/open-jdk 

- Путь Java может быть различным.
Используйте source для загрузки переменных, выполнив эту команду:

source /etc/environment

Затем проверьте переменную, выполнив эту команду:

echo $JAVA_HOME

С этим установленным путем выполните эту команду:

sudo  update-java-alternatives --list

Выберите версию Java по умолчанию.

Другие вопросы по тегам