Я пытаюсь установить инструменты Java SDK 8 (установленные из репозитория debian backports) по умолчанию.
# update-java-alternatives --list
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
# update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Хм, ну, помимо этой ошибки (которая, как я полагаю, является просто предупреждением в соответствии с https://askubuntu.com/questions/141791/is-there-a-way-to-update-all-java-related-alternatives . Если нет, я не знаю, как это исправить, поскольку я не вижу плагина icedtea для jdk8), это должно было помочь, верно?
Но многие инструменты Java по-прежнему указывают на Java 7:
# update-alternatives --get-selections | grep java
appletviewer manual /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer
extcheck auto /usr/lib/jvm/java-7-openjdk-amd64/bin/extcheck
idlj auto /usr/lib/jvm/java-7-openjdk-amd64/bin/idlj
jar auto /usr/lib/jvm/java-7-openjdk-amd64/bin/jar
jarsigner auto /usr/lib/jvm/java-7-openjdk-amd64/bin/jarsigner
java manual /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
javac auto /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
javadoc auto /usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc
...
Что дает? Сломан?
РЕДАКТИРОВАТЬ:
Работал над этим с помощью:
for i in `update-alternatives --get-selections | grep java | awk '{print $1}'`; do update-alternatives --config $i; done
Это будет вручную запрашивать вас для каждого инструмента. Это занимает около минуты. Тем не менее, я хотел бы знать, есть ли способ лучше.
update-java-alternatives
есть варианты обновления --jre-headless
, --jre
, и --plugin
по отдельности.
С помощью
sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64
работал у меня на сервере Debian Jessie без установленного плагина.
В ubuntu JDK1.8 не устанавливается по умолчанию. Когда вы перечисляете альтернативы Java
$ update-java-alternatives -l
java-1.11.0-openjdk-amd64 1101 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-7-oracle 1082 /usr/lib/jvm/java-7-oracle
java-1.8.0-openjdk-amd64
в этом списке не JDK, а JRE вместо. JRE не содержит всех необходимых инструментов разработки, таких как javac, javadoc и т. Д. Вы можете проверить, содержит ли каталог bin эти файлы. Это причина того, что эти инструменты не зарегистрированы.
Итак, сначала вам нужно установить JDK
sudo apt install openjdk-8-jdk
А затем измените альтернативу
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
Самый простой способ добиться этого в Debian - использовать эту команду
update-alternatives --config java
Тогда вы получите такой результат:
*0 /usr/lib/jvm/java-8-openjdk-amd64/bin/java auto mode
1 /usr/lib/jvm/jdk1.7.0/bin/java manual mode
Затем вы можете изменить свой выбор по умолчанию (отмеченный знаком «*»), набрав порядковый номер. Например, вы выбираете «1», чтобы использовать Java 7 в качестве JVM по умолчанию. Вы можете запустить команду еще раз, чтобы проверить изменения.
Надеюсь, поможет.
Для Linux (например, Debian):
# update-alternatives --config java
# update-alternatives --config javac
# update-alternatives --config javaws
Пример:
$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-10-oracle/bin/java 1091 auto mode
* 1 /usr/lib/jvm/java-10-oracle/bin/java 1091 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
4 /usr/lib/jvm/jdk1.7.0_80/bin/java 1 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode
Вам нужно изменить домашнюю переменную java для java 8 в файле ниже
'vi /etc/environment'
В этом формате
JAVA_HOME- / usr / lib / jvm / java-8-оракул
Перезагрузите файл конфигурации, используя
'. /etc/environment'
И подтверждаем этим
echo $JAVA_HOME