Establezca JDK 8 como el Java predeterminado en Debian 8

8

Estoy tratando de configurar las herramientas Java SDK 8 (instaladas desde el repositorio de backports de Debian) como las predeterminadas.

# 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, bien aparte de ese error (que creo que es simplemente una advertencia según /ubuntu/141791/is-there-a-way-to-update-all-java-related- alternativas . Si no, no sé cómo solucionar esto, ya que no hay un complemento icedtea para jdk8 que pueda ver), esto debería haber hecho el truco, ¿verdad?

Pero muchas herramientas Java todavía apuntan a 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
...

¿Lo que da? ¿Roto?

EDITAR:

Trabajó alrededor de esto con:

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

Esto le solicitará manualmente todas y cada una de las herramientas. Lo cual toma alrededor de un minuto. Aún así, me gustaría saber si hay una mejor manera.

Edd Barrett
fuente

Respuestas:

5

update-java-alternativestiene opciones para actualizar --jre-headless, --jrey --pluginpor separado.

Utilizando

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

funcionó para mí en un servidor Debian Jessie sin ningún complemento instalado.

hfs
fuente
4

En ubuntu, JDK1.8 no permanece instalado por defecto. Cuando enumeras 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-amd64en esta lista no está JDK, sino JRE en su lugar . JRE no contiene todas las herramientas de desarrollo necesarias como javac, javadoc, etc. Puede verificar si el directorio bin contiene estos archivos. Esta es la razón de no registrar estas herramientas.

Entonces, primero tienes que instalar JDK

sudo apt install openjdk-8-jdk

Y luego cambiar la alternativa

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

La forma más fácil de lograr esto en Debian es usar este comando

update-alternatives --config java

Entonces obtendrá una salida 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

Luego puede cambiar su selección predeterminada (marcada con "*") escribiendo el número de índice. Por ejemplo, selecciona "1" para utilizar Java 7 como JVM predeterminado. Puede ejecutar el comando nuevamente para verificar los cambios.

Espero eso ayude.

patan90
fuente
1

Para Linux (por ejemplo, Debian):

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

Ejemplo:

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

Debe cambiar la variable de inicio de Java para Java 8 en el archivo a continuación

  'vi /etc/environment'

En este formato

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

Vuelva a cargar el archivo de configuración usando

'. /etc/environment'

Y confirmar por esto

   echo  $JAVA_HOME
SuperKrish
fuente