¿Cómo actualizo Java 8 en Raspbian?

19

Mi Raspberry Pi 3 vino con la versión Java 1.8.0_65 instalada. No pude actualizarlo a una versión posterior usando apt-get, supongo que no hay repositorio de Debian para ello. No sé cómo actualizarlo, e instalar una versión más nueva no reemplaza la existente.

¿Cuál es la mejor forma de instalar / actualizar Java en Raspbian y mantenerlo actualizado en el futuro?

Travelling Tech Guy
fuente
Hay un proceso bastante complicado que implica llamar a alternativas de actualización para cada componente del JRE / JDK. Oracle no proporciona un servicio de actualización automática, ya que debe iniciar sesión manualmente en su sitio para descargar actualizaciones. A menos que sea una misión crítica, me quedaría con el Raspbian oracle-java8-jdk predeterminado
scruss
@ traveling-tech-guy Si alguna de las respuestas a continuación responde a su pregunta, márquela así. Si lo resolvió de una manera diferente, publique una respuesta a su propia pregunta y márquela.
not2qubit
@ not2qubit ninguno lo hizo, tuve que desinstalar y volver a instalar. Ver mi comentario a la segunda respuesta.
Travelling Tech Guy

Respuestas:

10

Para tener todo el tiempo instalado Oracle java más reciente, puede verificar Java actual

pi @ raspberrypi: ~ $ java -version versión java "1.8.0_65" Java (TM) SE Runtime Environment (compilación 1.8.0_65-b17) Java HotSpot (TM) Client VM (compilación 25.65-b01, modo mixto)

eliminar OpenJDK

sudo apt-get purge openjdk*

agregar clave digital

sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com EEA14886

agregar fuente de paquete

sudo vim /etc/apt/sources.list

agregue las siguientes líneas

deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main

instalar Java 8

sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

eliminar Java antiguo

sudo apt-get purge openjdk*
sudo apt-get purge java7*
sudo apt-get autoremove

comprobar el éxito

java -version

pi @ raspberrypi: ~ $ java -version versión java "1.8.0_131" Java (TM) SE Runtime Environment (compilación 1.8.0_131-b11) Java HotSpot (TM) Client VM (compilación 25.131-b11, modo mixto)

hannes ach
fuente
1
Gran respuesta. Yo sólo tenía que notar que el comando apt-keyse pegó con el guión largo, que en algún momento tuvo que reemplazar accidentalmente guiones dobles --por lo que el comando no funcionó, y dio lugar a error extraño: gpg: conflicting commands. He editado la respuesta para corregirlo.
SWilk
2
Esto no funcionó con Rasbian Stretch. Las instrucciones en gist.github.com/ribasco/fff7d30b31807eb02b32bcf35164f11f me funcionaron.
Kevin Doyon
sudo apt-get purge java7*eliminado oracle-java8-jdk...
Cardinal System
3

El siguiente consejo de Hannes Ach y SWilk fue exitoso, pero recibí el siguiente error:

pi@raspberrypi:~ $ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C2518248EEA14886 
Executing: /tmp/apt-key-gpghome.hVyJ3FPvDb/gpg.1.sh --recv-keys --keyserver keyserver.ubuntu.com C2518248EEA14886 
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory 
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.hVyJ3FPvDb/S.dirmngr' failed: No such file or directory 
gpg: keyserver receive failed: No dirmngr

Para resolver eso, corrí:

sudo apt-get install dirmngr --install-recommends

luego

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C2518248EEA14886

Entonces, todo funcionó como se esperaba.

Información original de aquí https://blog.sleeplessbeastie.eu/2017/11/02/how-to-fix-missing-dirmngr/

Dmitriy Pichugin
fuente
1

Si desea nuevas funciones ahora, es posible obtener versiones 9 y 10 como esta:

wget https://github.com/bell-sw/Liberica/releases/download/10/bellsoft-jre10-linux-arm32-vfp-hflt.debsudo
apt install ./bellsoft-jre10-linux-arm32-vfp-hflt.deb

Liberica para Raspberry Pi: https://www.bell-sw.com/java-for-raspberry-pi.html

Dmitry
fuente
0

¿Ya has probado esta guía? http://elinux.org/RPi_Java#Installing_Java_on_Raspberry_Pi

OpenJDK

sudo apt-get update
sudo apt-get install openjdk-7-jdk

Oracle Java 8

wget http://www.java.net/download/JavaFXarm/jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
tar zxf jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
rm jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz
sudo mv ./jdk1.8.0/ /opt/
sudo chown root:root -R /opt/jdk1.8.0/
sudo ln -s /opt/jdk1.8.0/ /opt/jdk8

Editar sudo nano -w /etc/profiley agregar

PATH="$PATH":/opt/jdk8/bin
JAVA_HOME=/opt/jdk8

java -version

para ver si Java está funcionando

Barba para el cuello2016
fuente
1
Gracias por la pregunta detallada, pero ya tengo instalado Java 8. Mi pregunta tiene que ver con actualizar a versiones más nuevas.
Travelling Tech Guy
No funciona, el Java instalado apt-get tiene prioridad en la ruta ya que está en/usr/bin/java
Wim Deblauwe
3
Estas son instrucciones muy antiguas y ya no son válidas
Scruss
+1 para cambiar a openjdk, ya sea por 7 u 8 si es posible. Es mucho más fácil mantenerse actualizado que descargar manualmente nuevos lanzamientos desde la página web de Oracle que con un simple apt. La versión predeterminada se puede cambiar fácilmente sudo update-alternatives --config java; sudo update-alternatives --config javay solo debe hacerse una vez.
MadMike