Defina o JDK 8 como o Java padrão no Debian 8

8

Estou tentando definir as ferramentas Java SDK 8 (instaladas no repositório de backports da debian) como os padrões.

# 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

Hum, bem além desse erro (que eu acredito que é apenas um aviso de acordo com /ubuntu/141791/is-there-a-way-to-update-all-java-related- alternativas . Se não, eu não sei como consertar isso, como não há icedtea plugins para jdk8 que eu posso ver), isso deve ter feito o truque, certo?

Mas muitas ferramentas Java ainda apontam para o 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
...

O que da? Partido?

EDITAR:

Resolvido isso com:

for i in `update-alternatives --get-selections | grep java | awk '{print $1}'`; do update-alternatives --config $i; done

Isso solicitará manualmente todas as ferramentas. O que leva cerca de um minuto. Ainda assim, gostaria de saber se existe uma maneira melhor.

Edd Barrett
fonte

Respostas:

5

update-java-alternativestem opções para atualizar --jre-headless, --jree, --pluginseparadamente.

Usando

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

trabalhou para mim em um servidor Debian Jessie sem nenhum plugin instalado.

hfs
fonte
4

No ubuntu, o JDK1.8 não permanece instalado por padrão. Quando você lista alternativas para 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-amd64nesta lista não é JDK, mas JRE . O JRE não contém todas as ferramentas de desenvolvimento necessárias, como javac, javadoc, etc. Você pode verificar se o diretório bin contém esses arquivos. Esse é o motivo de não registrar essas ferramentas.

Então, primeiro você precisa instalar o JDK

sudo apt install openjdk-8-jdk

E então mude a alternativa

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
misbah
fonte
2

A maneira mais fácil de conseguir isso no Debian é usando este comando

update-alternatives --config java

Então você obterá uma saída como esta:

*0  /usr/lib/jvm/java-8-openjdk-amd64/bin/java  auto mode
 1  /usr/lib/jvm/jdk1.7.0/bin/java              manual mode

Em seguida, você pode alterar sua seleção padrão (marcada com "*") digitando o número do índice. Por exemplo, você seleciona "1" para usar o Java 7 como JVM padrão. Você pode executar o comando novamente para verificar as alterações.

Espero que ajude.

patan90
fonte
1

Para Linux (por exemplo, Debian):

# update-alternatives --config java
# update-alternatives --config javac
# update-alternatives --config javaws

Exemplo:

$ 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
fonte
0

Você precisa alterar a variável home do java para java 8 no arquivo abaixo

  'vi /etc/environment'

Neste formato

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

Recarregue o arquivo de configuração usando

'. /etc/environment'

E confirme com isso

   echo  $JAVA_HOME
SuperKrish
fonte