Назад | Перейти на главную страницу

Установите JDK 8 как Java по умолчанию в Debian 8

Я пытаюсь установить инструменты 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