Jak zaktualizować Java 8 w Raspbian

19

Mój Raspberry Pi 3 został dostarczony z zainstalowaną wersją Java 1.8.0_65. Nie mogłem zaktualizować go do nowszej wersji przy użyciu apt-get- Zakładam, że nie ma dla niego repozytorium Debiana. Nie wiem, jak to zaktualizować, a zainstalowanie nowszej wersji nie zastępuje istniejącej.

Jaki jest najlepszy sposób, aby zainstalować / zaktualizować Javę na Raspbian i stale ją aktualizować?

Podróżujący facet techniczny
źródło
Istnieje dość skomplikowany proces polegający na wywoływaniu alternatywnych aktualizacji dla każdego komponentu JRE / JDK. Oracle nie zapewnia usługi automatycznej aktualizacji, ponieważ musisz ręcznie zalogować się na ich stronie, aby pobrać aktualizacje. Jeśli nie jest to krytyczne dla misji, trzymałbym się domyślnej wersji Raspbian oracle-java8-jdk
scruss
@ travelling-tech-guy Jeśli którakolwiek z odpowiedzi poniżej, odpowiedziała na twoje pytanie, proszę zaznaczyć je. Jeśli rozwiązałeś to w inny sposób, opublikuj odpowiedź na swoje pytanie i zaznacz to.
not2qubit
@ not2qubit żaden nie zrobił, musiałem odinstalować i ponownie zainstalować. Zobacz mój komentarz do drugiej odpowiedzi.
Podróżujący facet techniczny

Odpowiedzi:

10

Aby mieć cały czas zainstalowaną najnowszą wersję java Oracle, możesz sprawdzić bieżącą Javę

pi @ raspberrypi: ~ $ java -version java wersja „1.8.0_65” Java (TM) SE Runtime Environment (kompilacja 1.8.0_65-b17) Klient VM Java HotSpot (TM) (kompilacja 25.65-b01, tryb mieszany)

usuń OpenJDK

sudo apt-get purge openjdk*

dodaj klucz cyfrowy

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

dodaj źródło pakietu

sudo vim /etc/apt/sources.list

dodaj następujące wiersze

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

zainstaluj Javę 8

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

usuń starą Javę

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

sprawdź sukces

java -version

pi @ raspberrypi: ~ $ java -version java version "1.8.0_131" Java (TM) SE Runtime Environment (kompilacja 1.8.0_131-b11) Klient VM Java HotSpot (TM) (kompilacja 25.131-b11, tryb mieszany)

Hannes Ach
źródło
1
Świetna odpowiedź. Miałem tylko zauważyć, że polecenie apt-keyzostało wklejone z długiej desce rozdzielczej, który w pewnym momencie musiał zastąpić przypadkowo podwójne kreski --więc polecenie nie działa, i spowodowało dziwny błąd: gpg: conflicting commands. Zredagowałem odpowiedź, aby ją poprawić.
SWilk,
2
To nie działało z Rasbian Stretch. Instrukcje na gist.github.com/ribasco/fff7d30b31807eb02b32bcf35164f11f działały dla mnie.
Kevin Doyon
sudo apt-get purge java7*usunięto oracle-java8-jdk...
System Kardynał
3

Następujące porady Hannes Ach i SWilk zakończyły się powodzeniem, ale otrzymałem następujący błąd:

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

Aby rozwiązać ten problem, uruchomiłem:

sudo apt-get install dirmngr --install-recommends

następnie

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

Potem wszystko działało zgodnie z oczekiwaniami.

Oryginalne informacje stąd https://blog.sleeplessbeastie.eu/2017/11/02/how-to-fix-missing-dirmngr/

Dmitriy Pichugin
źródło
1

Jeśli chcesz teraz nowych funkcji, możesz uzyskać wersję 9 i 10 w następujący sposób:

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 dla Raspberry Pi: https://www.bell-sw.com/java-for-raspberry-pi.html

Dmitry
źródło
0

Czy próbowałeś już tego przewodnika? 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

Edytuj sudo nano -w /etc/profilei dodaj

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

java -version

aby sprawdzić, czy Java działa

Gryf2016
źródło
1
Dziękuję za szczegółowe pytanie, ale mam już zainstalowaną Javę 8. Moje pytanie dotyczy aktualizacji do nowszych wersji.
Podróżujący facet techniczny
Nie działa, zainstalowana apt-get Java ma pierwszeństwo na ścieżce, ponieważ jest/usr/bin/java
Wim Deblauwe
3
To są bardzo stare instrukcje i nie są już aktualne
podsumuj
+1, aby przejść do openjdk, jeśli to możliwe, 7 lub 8. O wiele łatwiej jest być na bieżąco niż ręcznie pobierać nowe wydania ze strony internetowej Oracle, niż przy pomocy zwykłego apt. Domyślną wersję można łatwo zmienić sudo update-alternatives --config java; sudo update-alternatives --config javai należy to zrobić tylko raz.
MadMike