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

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

На самом деле у меня есть версия java 6.22, и я хотел бы обновить ее до версии 6.30.

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

Для ясности вот вывод, если я сделаю ls в реж /usr/lib/jvm:

$ ls -l /usr/lib/jvmtotal 8 lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdklrwxrwxrwx  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.

На самом деле, если я выполню команду java -version результатом будет следующее:

$ java -versionjava 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 это дает мне установленную старую версию:

$ javac -versionjavac 1.6.0_22

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

Java Version 1.6.0_22 from Sun Microsystems Inc.

Что происходит не так?

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

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


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

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

$ sudo update-alternatives --config javaThere 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 modePress enter to keep the current choice[*], or type selection number:

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

Есть какие-нибудь идеи?

Повторяю ваш первый вопрос:

возможно, вас может сбить с толку тот факт, что скрипт 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?

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

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 использовать.

Если вы хотите использовать разные JDKS/JRES для каждой задачи Java, вы можете запустить update-alternatives для настройки одного исполняемого файла 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::")

для JREs, или

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

для JDKs.

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

В ubuntu / linux вы можете переключить версию java с помощью

update-alternatives --config java

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

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

#!/bin/sh(lookforJdks=$PWDecho "Directory: $lookforJdks"jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`#set -eecho '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 choosetest -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/binfor 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 altenative.

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 is /usr/bin/java slave javadoc is /usr/bin/javadoc/opt/jdk1.8.0_74/bin/java - приоритет 0 подчиненный javadoc: /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 и установит ее с помощью команды update-java-alternatives.

То || echo '.' в конце просто гарантирует, что команда вернет успех, потому что, как ни странно update-java-alternatives по умолчанию возвращает ошибку (1). Вы можете пропустить его, если вам это не нужно для набора тестов.

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

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

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

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

source /etc/environment

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

echo $JAVA_HOME

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

sudo  update-java-alternatives --list

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

хммм - возможно, вас смущает, что скрипт webupd8 равен 0.5b? Это версия скрипта - она не относится к версии java. Дайте ему попробовать. Давайте посмотрим на скриншот того, как выглядит окно при запуске скрипта.

@Ashu - javac --version - это JavaCompiler, а java --version - для JRE (я думаю)

@ fossfreedom Я не пробовал это, потому что подумал, что это не очень хорошая идея, поскольку она явно написана для загрузки с Java 5 на 6, должен ли я в любом случае?

@fossfreedom да, это меня совершенно сбило с толку; D Я запустил сценарий! проверьте соответствующие правки!большое спасибо за то, что помогли мне…

как это странно… никогда с этим не сталкивался. В любом случае - посмотрите на ответ чуть ниже - вы должны иметь возможность “sudo update-alternatives” в соответствии с примером.

@fossfreedom снова обновил вопрос!

давайте продолжим это обсуждение в чате

javac --version предназначен для JDK, тогда как java --version предназначен для JRE

@Matteo - ответ обновлен - вам нужно будет следовать инструкциям по установке плагина в соответствии http://askubuntu.com/questions/67909/how-do-i-install-oracles-jdk-6/89080#89080