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

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

Хм, не считая этой ошибки (которая, как я полагаю, является всего лишь предупреждением согласно /ubuntu/141791/is-there-a-way-to-update-all-java-related- альтернативы . Если нет, я не знаю, как это исправить, так как нет никакого плагина 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

Это вручную подскажет вам для каждого инструмента. Что занимает около минуты. Тем не менее, я хотел бы знать, есть ли лучший способ.

Эдд Барретт
источник

Ответы:

5

update-java-alternativesимеет опции для обновления --jre-headless, --jreи по --pluginотдельности.

С помощью

sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

работал для меня на сервере Debian Jessie без установленного плагина.

HFS
источник
4

В 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
Misbah
источник
2

Самый простой способ добиться этого в 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 по умолчанию. Вы можете запустить команду еще раз, чтобы проверить изменения.

Надеюсь, поможет.

patan90
источник
1

Для 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
CamelTM
источник
0

Вы должны изменить домашнюю переменную Java для Java 8 в файле ниже

  'vi /etc/environment'

В этом формате

JAVA_HOME- / usr / lib / jvm / java-8-oracle

Перезагрузите файл конфигурации, используя

'. /etc/environment'

И подтвердить это

   echo  $JAVA_HOME
SuperKrish
источник