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


0

Хочу что бы 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

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

ОС Дебиан.

Источник
  •  90
  •  1
  • 22 янв 2018 2018-01-22 15:42:33

1 ответ

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
1. если пакеты не нужны — не устанавливайте. 2. об этом весь ответ. особенно его концовка. — 24 янв 20182018-01-24 18:01:36.000000
то есть нужно доустановить те пакеты которые требуются? (в которые входят appletviewer и т.п.) и тогда перестанет появляться ошибки? — 24 янв 20182018-01-24 18:01:36.000000