Как установить версию 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
Если вы хотите переключиться на любую другую версию, просто замените
Версия 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 по умолчанию.