альтернативы Java обновления: Только Java, но не javac изменяется

Мне установили Java 8 и Java 11 параллельно на моей машине Ubuntu 16.04:

$ update-java-alternatives --list
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 ранее, я теперь хотел переключиться на Java 8 с помощью команды

$ sudo update-java-alternatives --set java-1.8.0-openjdk-amd64

Все же, только символьная ссылка /usr/bin/java, но нет /usr/bin/javac обновляется:

$ javac -version
javac 11.0.5

$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

Почему это и как это может быть зафиксировано?

0
задан 8 November 2019 в 03:59

1 ответ

Альтернативы Java настроены в .jinfo файлах, например, альтернативах в /usr/lib/jvm/.java-1.8.0-openjdk-amd64.jinfo и /usr/lib/jvm/.java-1.11.0-openjdk-amd64.jinfo в Вашем случае. При рассмотрении файла Java 8 Вы будете видеть следующую строку, которая настраивает путь для javac, среди других для всех других двоичных файлов Java:

jdkhl javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

К сожалению, это походит update-java-alternatives сценарий устарел в Вашей системе, ведя к строкам, снабженным префиксом jdkhl (короткий для Бездисплейного JDK) быть проигнорированным. Это было также обсуждено в ошибке Debian #825987.

Для фиксации его просто отредактируйте /usr/sbin/update-java-alternatives согласно этому различному

1
ответ дан 22 December 2019 в 00:03

Другие вопросы по тегам:

Похожие вопросы: