Instalar la última versión de Java siempre es un poco complicado y quería ver si estoy haciendo todo bien. Actualmente tengo Java 16 en esta ruta /usr/lib/jvm/adoptopenjdk-16-hotspot-armhf
Seguí el siguiente tutorial 2) Instale OpenJDK 17 en Debian 10/9 y todo salió bien.
Mi JAVA_HOME es correcto y está configurado en /opt/jdk17 , pero mi java --version todavía usa Java 16.
java --version openjdk 16.0.1 2021-04-20 OpenJDK Runtime Environment AdoptOpenJDK-16.0.1+9 (build 16.0.1+9) OpenJDK Server VM AdoptOpenJDK-16.0.1+9 (build 16.0.1+9, mixed mode)Otra información útil
pi@raspberrypi:~ $ which java /usr/bin/java pi@raspberrypi:~ $ echo $PATH /home/pi/.local/bin:/bin:/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games Mi variable PATH no parece contener /opt/jdk-17 pero incluso después de ejecutar source /etc/profile.d/jdk.sh y /opt/jdk-17 presente, java --version todavía usa Java 16.
Basado en varios comentarios...
/opt/jdk17JAVA_HOME apuntando a la base de la instalación de Java 17. Supongo que hay (por ejemplo) un ejecutable /opt/jdk17/bin/java .PATH )./usr/bin/java ... que (en su caso) dice Java 16 cuando ejecuta java -version .sudo update-alternatives --config java dice que solo Java 16 está disponible.Entonces ...
El mecanismo de "alternativas" crea y mantiene enlaces simbólicos a varios comandos intercambiables. Si ejecuta ls -l /usr/bin/java por ejemplo, espero que vea que es un enlace simbólico. Cuando ejecuta update-alternatives , intentará actualizar los enlaces simbólicos. Pero solo puede hacer esto para comandos y versiones de comandos que conoce.
En este momento... update-alternatives no sabe acerca de Java 17. No sabe si está instalado o dónde está instalado.
Si hubiera instalado Java 17 desde el administrador de paquetes, también se habrían agregado los archivos de configuración que update-alternatives sobre Java 17.
Soluciones, ordenadas de "mejor" (1) a "peor".
Elimine su instalación manual de Java 17 e instálela desde el administrador de paquetes. Es posible que necesite buscar/agregar un repositorio de paquete Debian "experimental" para hacer esto. (Tengo la impresión de que los administradores de repositorios oficiales de Debian tienden a ser bastante lentos a la hora de seleccionar cosas nuevas).
Lea atentamente la documentación en man 1 update-alternatives y update-alternatives --help y luego use los comandos --install y --slave para informarle sobre Java 17.
Encuentre los enlaces simbólicos de Java y reemplácelos manualmente con enlaces simbólicos a las versiones Java 17 de los ejecutables. (Ten cuidado ...)
Agregue /opt/jdk17/bin al comienzo de su PATH . (Ten cuidado ...)
Simplemente use los nombres de ruta completos; por ejemplo /opt/jdk17/bin/java en lugar de java .
También me encontré con esto:
Java 17 en Raspberry Pi que incluye (entre otras cosas) comandos de ejemplo para agregar Java 17 al sistema alternativo. También menciona el uso sdkman .
Cómo instalar Java 17 (JDK 17) en Debian 11 . Hay un comentario que dice:
" ¡Impresionante! Gracias. Este paquete de Debian funciona en Bullseye Raspian de 64 bits de Raspberry Pi a partir de la publicación. El único método que funciona sin descargar paquetes manualmente ni intentar instalarlo. :)" .
Pero veo que tienes una Raspberry Pi de 32 bits...