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

评论

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

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

@ not2qubit没有做,我必须卸载并重新安装。请参阅我对第二个答案的评论。

#1 楼

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


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


评论


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

–SWilk
17年11月11日在20:39

这不适用于Rasbian Stretch。 gist.github.com/ribasco/fff7d30b31807eb02b32bcf35164f11f上的说明对我有用。

–凯文·多永(Kevin Doyon)
18年5月15日在3:22

sudo apt-get purge java7 *删除了oracle-java8-jdk ...

–红衣主教-恢复莫妮卡
19/12/8在6:19

#2 楼

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/

#3 楼

如果您现在想要新功能,则可以像这样获得版本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

#4 楼

您是否尝试过本指南?
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


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

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

java -version


以查看Java是否正常工作

评论


感谢您提供详细的问题,但我已经安装了Java 8。我的问题与更新到新版本有关。

–旅游技术专家
16年4月18日在14:32

不起作用,因为apt-get安装的Java在/ usr / bin / java中,所以它优先于路径

– Wim Deblauwe
16年8月25日在8:52

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

–scruss
16-09-18在15:40

+1切换到openjdk,如果可能,则为7或8。与使用简单的apt相比,保持最新状态要比从oracle网页手动下载新版本容易得多。可以使用sudo update-alternatives --config java;轻松切换默认版本。 sudo update-alternatives --config java,只需执行一次。

–MadMike
17年2月21日在10:57