Почему возникает ошибки при установки java-alternatives?

150
07 мая 2019, 06:10

Хочу что бы JDK11 был выбран, по умолчанию, вручную. Ввожу команду:

 sudo update-java-alternatives --list

Мне выдает две версии 8 и 11

java-1.11.0-openjdk-amd64      1111       /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 11.

 sudo update-java-alternatives --set java-1.11.0-openjdk-amd64 --verbose

И начинают сыпаться ошибки.

resetting java alternatives
update-alternatives: ошибка: нет альтернатив для appletviewer
update-alternatives: ошибка: нет альтернатив для extcheck
update-alternatives: ошибка: нет альтернатив для idlj
update-alternatives: ошибка: нет альтернатив для javah
update-alternatives: ошибка: нет альтернатив для jhat
update-alternatives: ошибка: нет альтернатив для jsadebugd
update-alternatives: ошибка: нет альтернатив для mozilla-javaplugin.so
update-alternatives: ошибка: нет альтернатив для native2ascii
update-alternatives: ошибка: нет альтернатив для policytool
update-alternatives: ошибка: нет альтернатив для schemagen
update-alternatives: ошибка: нет альтернатив для wsgen
update-alternatives: ошибка: нет альтернатив для wsimport
update-alternatives: ошибка: нет альтернатив для xjc

Подозреваю нет альтернатив потому что этих компонентов просто нет в новой джаве, но тогда откуда они взялись?

ОС Дебиан.

Answer 1

как видно из содержимого запускаемого скрипта /usr/sbin/update-java-alternatives, список альтернатив черпается из файлов /usr/lib/jvm/.*.jinfo, которые находятся в пакетах:

$ dpkg -S /usr/lib/jvm/.*.jinfo
openjdk-11-jre-headless:amd64: /usr/lib/jvm/.java-1.11.0-openjdk-amd64.jinfo
openjdk-8-jre-headless:amd64: /usr/lib/jvm/.java-1.8.0-openjdk-amd64.jinfo

перечислены там альтернативы для файлов всех пакетов типа openjdk-версия-*. у вас же явно пакеты с jdk (*-версия-jdk*) не установлены (это в них входят все эти appletviewer и т.п.)

вообще эти сообщения, насколько я вижу, не влияют на результат выполнения скрипта: альтернативы (для существующих файлов) успешно заменяются.

но чтобы сообщений не было, надо добавить опцию, которая отфильтрует альтернативы только для нужных пакетов: --jre или --jre-headless.

например:

$ sudo update-java-alternatives --jre --set java-1.11.0-openjdk-amd64
READ ALSO
AudioManager.OnAudioFocusChangeListener [закрыт]

AudioManager.OnAudioFocusChangeListener [закрыт]

Встретил такой Андроид код:

159
PriorityQueue - в классе объявлены избыточные конструкторы?

PriorityQueue - в классе объявлены избыточные конструкторы?

В классе PriorityQueue определен конструктор, который принимает аргументом CollectionВ этом конструкторе имеется проверка аргумента на соответствие...

162
Наличие аналога python exec в java

Наличие аналога python exec в java

Есть ли в Java функция, аналогичная функции exec в Python? Нигде не могу найти внятного ответа - есть или нетЕсли есть, то хорошо было бы ее назвать

126
Сохранение даты в RethinkDB

Сохранение даты в RethinkDB

В RethinkDB нужно сохранить документ, в котором содержится несколько полей с датамиПо этим датам нужно будет искать документы в RethinkDB

141