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

7

Estou tentando definir as ferramentas do Java SDK 8 (instaladas a partir do repo de backports debian) como 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 sou levado a acreditar é apenas um aviso de acordo com link . Se não, eu não sei como consertar isso, já que não há nenhum plugin icedtea para o jdk8 que eu posso ver), isso deveria ter feito o truque, né?

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 dá? Quebrado?

EDITAR:

Trabalhou em torno disso com:

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

Isso irá solicitar manualmente para cada ferramenta. O que demora cerca de um minuto. Ainda assim, gostaria de saber se existe uma maneira melhor.

    
por Edd Barrett 09.11.2016 / 20:40

5 respostas

3

No Ubuntu, o JDK1.8 não fica instalado por padrão. Quando você lista para alternativas de 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 nesta 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. Esta é a razão de não registrar essas ferramentas.

Então, primeiro você precisa instalar o JDK

sudo apt install openjdk-8-jdk

Em seguida, altere a alternativa

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
    
por 30.08.2018 / 07:38
2

update-java-alternatives tem opções para atualizar --jre-headless , --jre e --plugin separadamente.

Usando

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

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

    
por 05.09.2017 / 17:54
0

Você precisa alterar a variável inicial do java para o java 8 abaixo do arquivo

  '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
    
por 17.11.2016 / 06:18
0

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

update-alternatives --config java

Então você terá uma saída assim:

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

Depois, 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.

    
por 05.09.2017 / 19:41
0

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
    
por 26.10.2018 / 21:35