如何在Raspbian中更新Java 8


19

我的Raspberry Pi 3附带了Java版本1.8.0_65。我无法使用apt-get- 将其更新为更高版本-我认为没有Debian仓库。我不知道如何更新它,并且安装较新的版本不会替代现有的版本。

在Raspbian上安装/更新Java并保持其更新的最佳方式是什么?


有一个相当麻烦的过程,涉及为JRE / JDK的每个组件调用更新替代项。Oracle不提供自动更新服务,因为您需要手动登录其站点以下载更新。除非这是关键任务,否则我将使用默认的Raspbian oracle-java8-jdk
scruss

@ traveling-tech-guy如果有以下任何答案,请回答您的问题,请在此标记。如果您以其他方式解决了该问题,请针对您自己的问题发布答案并加以标记。
not2qubit

@ not2qubit没有任何作用,我必须卸载并重新安装。请参阅我对第二个答案的评论。
Travel Tech Tech Guy

Answers:


10

要一直安装最新的Oracle Java,可以检查当前的Java

pi @ raspberrypi:〜$ java -version Java版本“ 1.8.0_65” Java SE运行时环境(内部版本1.8.0_65-b17)Java HotSpot(TM)客户端VM(内部版本25.65-b01,混合模式)

删除OpenJDK

sudo apt-get purge openjdk*

添加数字钥匙

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

添加数据包源

sudo vim /etc/apt/sources.list

添加以下行

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

安装Java 8

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

删除旧的Java

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

检查成功

java -version

pi @ raspberrypi:〜$ java -version Java版本“ 1.8.0_131” Java™SE运行时环境(内部版本1.8.0_131-b11)Java HotSpot(TM)客户端VM(内部版本25.131-b11,混合模式)


1
好答案。我只需要注意命令apt-key中粘贴了长破折号,在某些时候必须不小心替换了双破折号,--所以命令不起作用,并导致了奇怪的错误:gpg: conflicting commands。我已经编辑了答案以更正它。
SWilk

2
这不适用于Rasbian Stretch。gist.github.com/ribasco/fff7d30b31807eb02b32bcf35164f11f上的说明对我有用
凯文·多永

sudo apt-get purge java7*删除oracle-java8-jdk...
红衣主教系统

3

hannes ach和SWilk的以下建议是成功的,但是出现以下错误:

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

为了解决这个问题,我跑了:

sudo apt-get install dirmngr --install-recommends

然后

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

然后,一切按预期进行。

来自此处的原始信息 https://blog.sleeplessbeastie.eu/2017/11/02/how-to-fix-missing-dirmngr/


1

如果现在要使用新功能,则可以像这样获得版本9和10:

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

适用于Raspberry Pi的Liberica:https : //www.bell-sw.com/java-for-raspberry-pi.html


0

您是否尝试过本指南? http://elinux.org/RPi_Java#Installing_Java_on_Raspberry_Pi

OpenJDK的

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

甲骨文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

编辑sudo nano -w /etc/profile并添加

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

java -version

看看java是否在工作


1
感谢您的详细问题,但我已经安装了Java 8。我的问题与更新到较新版本有关。
Traveling Tech Guy 2016年

无法正常工作,因为apt-get安装的Java处于安装状态,因此它在路径上处于优先地位/usr/bin/java
Wim Deblauwe

3
这些是非常古老的说明,不再有效
scruss

+1切换到openjdk,如果可能,则为7或8。与使用简单的apt相比,保持最新状态要比从oracle网页手动下载新版本容易得多。可以轻松切换默认版本sudo update-alternatives --config java; sudo update-alternatives --config java,只需执行一次即可。
MadMike '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.