在ubuntu上将Java版本更新为8


13

我想在ubuntu 12.04计算机上更新我的Java版本(UPDATE,未安装)。我目前有Java 7.x,并且希望将其更新到最新版本(至少为8.0),而又不会过于复杂。


您还记得最初安装Java的方式吗?
拉斐尔

不,那是很久以前的事
Sergey

1
您在问哪个Java?Oracle还是Openjdk?
飞行员

1
您可能需要将“ java -version”的输出添加到您的问题中。
托尔比约恩Ravn的安徒生

此外,最早的Ubuntu版本有OpenJDK的-8可直接为14.10
托尔比约恩Ravn的安徒生

Answers:


19

Java 8在Ubuntu 12.04存储库中不可用,但可以从Launchpad PPA中获得。

您也不能将Java版本更新为下一个Java版本,但是可以并排安装不同的Java版本。

要安装Java版本8(OpenJDK 8版本 -不是ORACLE Java 8),请打开一个终端并执行:

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk  

如果只想安装Java Runtime Environment:

sudo apt-get install openjdk-8-jre  

注1:

正如您说的“ ...不要太复杂...”,我假设您是从Ubuntu库安装Java 7的,该库包含OpenJDK且未添加WebUpd8 PPA(ORACLE Java)。

笔记2 :

正如您说的那样,请File "/usr/bin/add-apt-repository", line 37 print _("The %s named '%s' has no PPA named '%s'" ^ SyntaxError: invalid syntax查看此处

建议:

并排安装两个版本,某些其他软件包或程序可能依赖Java 7。

但是,如果您不想同时拥有两个版本,并且如果不再需要Java 7,请删除它。


它说我不能添加PPA: File "/usr/bin/add-apt-repository", line 37 print _("The %s named '%s' has no PPA named '%s'" ^ SyntaxError: invalid syntax
谢尔盖(Sergey)

6

由于您没有指定要安装OpenJDK还是Oracle JDK,因此我的答案涵盖了Oracle JDK。

这里引用这段文字很有趣。以下内容也适用于JDK8,适用于您的所有Ubuntu版本或更高版本。

PPA上没有托管Oracle JDK7本身,因为新的Java许可证不允许这样做(这也是从官方Ubuntu存储库中删除它的原因);PPA中的软件包会自动从其官方网站下载Oracle Java JDK 7,并将其安装在Ubuntu / Linux Mint计算机上,就像flashplugin-installer软件包一样。

请注意,预计JDK9将于今年发布,因此请勿在此之前尝试使用。

因此,这是安装(而非更新)Java 8版本的方法:

sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update
sudo apt-get install oracle-java8-installer

1
cl-netbox提供了安装OpenJDK(而不是Oracle)的指导。OP没有具体说明他问的一个愿望。
飞行员

您说得对,谢谢您的来信。我更新了。

3

添加到较早的答案...从该ppa安装后,我的JAVA_HOME出现了以下问题:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

第四个命令无法按预期运行。因此,就我而言,我必须手动运行以下命令:

sudo /etc/environment(add the below two lines and append to PATH if needed)
JAVA_HOME=/path-to-java-before-bin-directory
export JAVA_HOME

sudo source /etc/environment

然后工作正常。还要验证一下:

root@ashu-700-430qe:/DataStax_POC# which java
/usr/bin/java
root@ashu-700-430qe:/DataStax_POC# java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
root@ashu-700-430qe:/DataStax_POC#

我提到了这个链接。希望这可以帮助


0

另一种选择是OpenJDK的Zulu端口,可以将其下载为zip文件,解压缩并直接使用。

如果需要从命令行运行,请考虑将bin目录放在.bash_profile中的$ PATH之前。

可从http://www.azul.com/downloads/zulu/zulu-linux/下载

(未经测试,因为我没有12.04系统可用。尽管看起来满足了glibc至少2.5的要求)


0

如果要保留两个版本,并根据需要进行切换,请考虑以下命令:

update-java-alternatives

确保特定的Java(sun-java)是默认的运行时。使用update-java-alternatives --list来显示所有可能的选项,update-java-alternatives --set <java version name from --list>将其切换。


由于Java具有许多组件,因此使用替代方法进行配置很棘手。这就是为什么有update-java-alternatives命令的原因。您应该更新您的答案以反映这一点。
philsf '16

0

另一个可能的解决方案是从Github中可用ubuntu-justched的项目添加PPA存储库。这将提供一些不同的解决方案,因为它将Oracle JRE tarball下载到先前配置的目录并从中生成DEB包。

这样,您就不必依赖其他人来打包JRE了,您可以自己完成(不要担心,这将是一个自动过程)。

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.