如何在Ubuntu下安装JDK 10?

75

我该如何在Ubuntu上安装Java Development Kit(JDK)10?

Oracle帮助中心的安装说明只介绍了如何在Linux平台上下载和解压缩存档文件,没有任何系统设置。


2
嘿,看一下这个链接:https://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre。Java 10的步骤是相同的。 - Emax
Openjdk 10可能很快就会在18.04中提供。https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-18.04-LTS-OpenJDK-Plans - Thorbjørn Ravn Andersen
7个回答

193

更新:现在可用JDK 11

sudo apt-get install openjdk-11-jdk

针对JDK 10

选项1:轻松安装(PPA)

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

然后使用以下命令将其设置为默认值:

sudo apt-get install oracle-java10-set-default

最后使用以下方式验证安装:

$ java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

来源:Linux Uprising

选项2: 手动安装

  • 下载适用于Linux的OpenJDK 10二进制文件。

  • 解压下载的存档:

  • tar xzvf openjdk-10_linux-x64_bin.tar.gz
    
  • 将提取的归档文件移动到您的系统保留已安装JDK的位置:

  • sudo mv jdk-10 /usr/lib/jvm/java-10-openjdk-amd64/
    
  • 添加新的Java替代方案:

    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-10-openjdk-amd64/bin/java 1
    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-10-openjdk-amd64/bin/javac 1
    
  • 更新您系统的Java备选项并选择JDK 10:

    $ sudo update-alternatives --config java
    here are 3 choices for the alternative java (providing /usr/bin/java).
    
      Selection    Path                                            Priority   Status
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      auto mode
    * 1            /usr/lib/jvm/java-10-openjdk-amd64/bin/java      1         manual mode
      2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
      3            /usr/lib/jvm/java-9-openjdk-amd64/bin/java       1091      manual mode
    
    Press <enter> to keep the current choice[*], or type selection number: 
    

    $ sudo update-alternatives --config javac
    There are 3 choices for the alternative javac (providing /usr/bin/javac).
    
      Selection    Path                                          Priority   Status
    ------------------------------------------------------------
    * 0            /usr/lib/jvm/java-9-openjdk-amd64/bin/javac    1091      auto mode
      1            /usr/lib/jvm/java-10-openjdk-amd64/bin/javac   1         manual mode
      2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      manual mode
      3            /usr/lib/jvm/java-9-openjdk-amd64/bin/javac    1091      manual mode
    
    Press <enter> to keep the current choice[*], or type selection number: 1
    update-alternatives: using /usr/lib/jvm/java-10-openjdk-amd64/bin/javac to provide /usr/bin/javac (javac) in manual mode
    
  • 使用以下命令验证您的安装:

  • $ java --version
    openjdk 10 2018-03-20
    OpenJDK Runtime Environment 18.3 (build 10+46)
    OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
    

    $ javac --version
    javac 10
    
  • 完成


如果您更喜欢使用Oracle的JDK,请下载并按照上述步骤进行安装。


3
最好不要使用与官方软件包可能使用的完全相同的目录名称,以避免覆盖文件。 - Thorbjørn Ravn Andersen
1
@DmitriyDumanskiy WebUpd8团队已准备好JDK 8/9 PPA,因此他们可能会为JDK 10发布一个PPA。 我不知道他们什么时候或是否会发布它。 但您可能会发现由不明出版商发布的JDK 10 PPA repos,这些应该不受信任,因为存在潜在的安全风险。 - Sam
2
不要忘记为 jar 命令执行 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-10-openjdk-amd64/bin/jar 1 命令! - David Tabernero M.
2
Ubuntu 软件包 openjdk-11-jdk 包含 Java 10.0.2 :) - Mad Penguin
1
请注意,由于某些原因,您不能在Ubuntu 18.10上使用ppa安装JDK 10。"oracle-java10-installer"软件包没有可安装的候选项。 - Douglas Gaskell
显示剩余5条评论

13

我发现SdkMan!是一个非常有用的工具,因为它提供了一种方便的方式来从 shell 中管理您的 JDKs。

例如,一旦安装完成,您可以执行以下操作:

安装特定版本的JDK:sdk install java 10.0.2-open

Downloading: java 10.0.2-open

In progress...

#################                             12,3%

使用特定的JDK版本:sdk use java 10.0.2-open

Using java version 10.0.2-open in this shell.

列出可用的JDK:sdk list java

===================================================================
Available Java Versions
===================================================================                                                        
     9.0.4-open                                                                    
   + 8u161-oracle                                                                  
     8.0.191-oracle                                                               
 > + 8.0.171-oracle                                                                
     7.0.191-zulu                                                                 
     12.ea.15-open                                                                 
     11.0.1-open                                                                  
     10.0.2-open                                                                   
     1.0.0-rc8-graal                                                              

===================================================================
+ - local version
* - installed
> - currently in use
=======================================================================

还有更多

请参见https://sdkman.io/usage


8

有一个Java 10的ppa,安装的是Oracle的Java:https://launchpad.net/~linuxuprising/+archive/ubuntu/java

我不确定这个ppa是否会被维护。它似乎是网站webupd8上关于如何处理Oracle Java安装的复制(参考:文档)。

如何使用此ppa:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

验证安装:

$ /usr/lib/jvm/java-10-oracle/bin/java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

设置环境变量(将Java10设置为默认)

sudo apt-get install oracle-java10-set-default

2
这个PPA的来源比较模糊,我不太信任它。我们最好等待WebUp8发布。 - Sam
5
这是从官方WebUp8存储库中提到的:https://launchpad.net/~webupd8team/+archive/ubuntu/java - BeepDog

3

注意:仅在您拥有多个Java版本时,您才需要使用update-alternatives

注意:在安装新的Java之前,您可以清除有关Java的所有内容。

 sudo apt purge java*

新安装Java 10

  1. 从这里下载JDK 10(您可以下载JRE和服务器JRE):http://www.oracle.com/technetwork/java/javase/downloads/index.html

  2. 将其解压并放置在/opt/java目录下。您将JDK放置在/opt/java目录中,使得它对所有用户都可用,因为它位于公共的/opt目录中。

    注意: 我下载了JDK、JRE和服务器JRE,并解压了JDK并将其重命名为jdk10,解压了JRE并将其重命名为jre10,解压了服务器JRE并将其重命名为jre10server,如下图所示)。

  3. 更新您的/etc/environment文件,如下所示: enter image description here

现在,您需要使用以下命令重新加载/etc/environment脚本文件到系统中。

source /etc/environment

在这里输入图片描述

如果您想了解更多关于update-alternatives的内容,请查看以下链接:https://askubuntu.com/questions/159575/how-do-i-make-java-default-to-a-manually-installed-jre-jdk


1

在最后一步之前,您需要执行update-alternatives --install。

sudo update-alternatives --install "/usr/bin/java" java "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" javac "/usr/lib/jvm/java-10-openjdk-amd64/bin/javac" 1

1
我找到了一个代码库。
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
sudo apt install openjdk-10-jdk

代码库主页


那个链接只能在互联网上存在一会儿,然后它就会失效,这个回答针对这个不相关的问题将不再有帮助。 - user1531971
完全冗余安装openjdk10(它包含在openjdk-11-jdk中),但如果您想要真正的jdk 11,则是必需的。 - 9ilsdx 9rvj 0lo

0

在Linux Ubuntu上安装Jdk 10

  1. 从Oracle官网下载所需的tarball,即https://www.oracle.com

  2. 使用“tar -zxvf tarball_name”解压缩此tarball

  3. 在“/usr/lib”中创建一个名为“java”的文件夹,您需要root权限
    sudo mkdir /usr/lib/java

  4. 使用以下命令将提取的文件夹移动到“/usr/lib/java/”:
    sudo mv java-10-dir-name/ /usr/lib/java/

  5. 现在进入位置,即cd /usr/lib/java/java-10-dir-name/

  6. 接下来,在终端中运行以下脚本:

         sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/java/java-10-dir-name/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java/java-10-dir-name/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/java/java-10-dir-name/bin/javaws" 1

    注意:在上面给出的命令中,您必须将“java”提取目录的名称命名为“java-10-dir-name”。

    更新~/.bashrc中的JAVA_HOME

         export JAVA_HOME=/usr/lib/java/java-10-dir-name
         set PATH="$PATH:$JAVA_HOME/bin"
         export PATH
     

    验证安装

    验证您的机器上是否正确安装了Java 10,请在终端中执行以下命令:

         $ java --version
         openjdk 10 2018-03-20
         OpenJDK Runtime Environment 18.3 (build 10+46)
         OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
     

         $ javac --version
         javac 10
     

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接