如何在Ubuntu 18.04上安装Java

介绍

Java和JVM(Java的虚拟机)是许多软件所必需的,包括TomcatJettyGlassfishCassandraJenkins

在本教程中,您将使用apt安装各种版本的Java Runtime Environment(JRE)和Java Developer Kit(JDK)。您将安装OpenJDK以及Oracle的官方软件包。然后,您将选择要用于项目的版本。完成后,您将能够使用JDK开发软件或使用Java Runtime运行软件。

准备

一台Ubuntu 18.04 的服务器,一个可以使用sudo命令的非root账户。没有服务器的用户可以购买和使用腾讯云服务器或者直接在腾讯云实验室Ubuntu服务器上直接上机安装JAVA 。

安装默认JRE / JDK

安装Java的最简单方法是使用与Ubuntu一起打包的版本。默认情况下,Ubuntu 18.04包含Open JDK,它是JRE和JDK的开源变体。

该软件包将安装OpenJDK 10或11。

  • 在2018年9月之前,这将安装OpenJDK 10。
  • 2018年9月之后,这将安装OpenJDK 11。

要安装此版本,请先更新本地软件包:

$ sudo apt update

接下来,检查是否已安装Java:

$ java -version

如果当前未安装Java,您将看到以下输出:

Command 'java' not found, but can be installed with:

apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
apt install openjdk-9-jre-headless

执行以下命令安装OpenJDK:

$ sudo apt install default-jre

此命令将安装Java运行时环境(JRE)。这将允许您运行几乎所有Java软件。

验证安装:

$ java -version

您将看到以下输出:

openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

除了JRE之外,您可能还需要Java Development Kit(JDK)才能编译和运行某些特定的基于Java的软件。要安装JDK,请执行以下命令,该命令还将安装JRE:

$ sudo apt install default-jdk

通过检查Java编译器的javac版本,来验证是否已安装JDK :

$ javac -version

您将看到以下输出:

javac 10.0.1

接下来,让我们看一下我们要安装哪个OpenJDK版本。

安装OpenJDK的特定版本

虽然您可以安装默认的OpenJDK软件包,但您也可以安装不同版本的OpenJDK。

OpenJDK 8

Java 8是当前的长期支持版本,并且仍然受到广泛支持,但公共维护在2019年1月结束。要安装OpenJDK 8,请执行以下命令:

$ sudo apt install openjdk-8-jdk

验证是否已安装

$ java -version

你会看到这样的输出:

openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)

也可以只安装JRE,您可以通过执行sudo apt install openjdk-8-jre来完成。

OpenJDK 10/11

Ubuntu的存储库包含一个将安装Java 10或11的软件包。在2018年9月之前,该软件包将安装OpenJDK 10.一旦发布了Java 11,该软件包将安装Java 11。

要安装OpenJDK 10/11,请执行以下命令:

$ sudo apt install openjdk-11-jdk

要仅安装JRE,请使用以下命令:

$ sudo apt install openjdk-11-jre

接下来,我们来看看如何安装Oracle的官方JDK和JRE。

安装Oracle JDK

如果要安装Oracle JDK(Oracle分发的正式版),则需要为要使用的版本添加新的软件包存储库。

要安装Java 8(最新的LTS版本),首先要添加其软件包存储库:

$ sudo add-apt-repository ppa:webupd8team/java

添加存储库时,您将看到如下消息:

Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK8). There are no actual Jav
a files in this PPA.

Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracl
e-java-7-and-6-installers-no.html

Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/j
dk9-downloads-3848520.html

The PPA supports Ubuntu 18.04, 17.10, 16.04, 14.04 and 12.04.

More info (and Ubuntu installation instructions):
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

Debian installation instructions:
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html

For Oracle Java 10, see a different PPA: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html

More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or Ctrl-c to cancel adding it.

ENTER继续。然后更新您的软件包列表:

$ sudo apt update

包列表更新后,安装Java 8:

$ sudo apt install oracle-java8-installer

您的系统将从Oracle下载JDK并要求您接受许可协议。接受协议,JDK将安装。

现在让我们看看如何选择要使用的Java版本。

管理Java

您可以在一台服务器上安装多个Java。您可以使用update-alternatives命令,配置在命令行上使用的默认版本。

$ sudo update-alternatives --config java

如果您在本教程中安装了所有版本的Java,那么这就是输出的样子:

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode

选择与Java版本关联的编号以将其作为默认编号,或按ENTER以保留当前设置。

您可以对其他Java命令执行此操作,例如compiler(javac):

$ sudo update-alternatives --config javac

指此命令可以运行其它命令包括,但不限于:keytooljavadocjarsigner

设置JAVA_HOME环境变量

许多使用Java编写的程序使用JAVA_HOME环境变量来确定Java安装位置。

要设置此环境变量,请首先确定Java的安装位置。使用update-alternatives命令:

$ sudo update-alternatives --config java

此命令显示Java的每个安装及其安装路径:

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode

Press <enter> to keep the current choice[*], or type selection number:

在这种情况下,安装路径如下:

  1. OpenJDK 11位于 /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
  2. OpenJDK 8位于/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
  3. Oracle Java 8位于/usr/lib/jvm/java-8-oracle/jre/bin/java

从您想要的安装中复制路径。然后使用nano或您喜欢的文本编辑器打开/etc/environment

$ sudo nano /etc/environment

在此文件的末尾,添加以下行,确保使用您自己复制的路径替换突出显示的路径:

/etc/environment

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"

修改此文件将为系统上的所有用户设置JAVA_HOME路径。

保存文件并退出编辑器。

现在重新加载此文件:

$ source /etc/environment

验证是否已设置环境变量:

$ echo $JAVA_HOME

您将看到刚刚设置的路径:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java

其他用户需要执行命令source /etc/environment或注销并重新登录才能应用此设置。

结论

在本教程中,您安装了多个Java版本,并学习了如何管理它们。您现在可以安装在Java上运行的软件,例如Tomcat,Jetty,Glassfish,Cassandra或Jenkins。如果您需要在windows上同样安装Java环境,可以参考腾讯云开发者实验室基于Windows Java web环境搭建上机实验。


参考文献:《How To Install Java with apt on Ubuntu 18.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阿杜的世界

Spring Boot应用的健康监控

在之前的系列文章中我们学习了如何进行Spring Boot应用的功能开发,以及如何写单元测试、集成测试等,然而,在实际的软件开发中需要做的不仅如此:还包括对应用...

16610
来自专栏耕耘实录

RHEL7、CentOS7的服务管理-系统管理(4)

从RHEL7的官方文档中我们,可以看出在未来service和chkconfig可能会退出历史舞台,现在的发行版中还保留这些命令最主的原因是考虑了兼容性,在使用中...

11830
来自专栏C/C++基础

Linux命令(24)——mv命令

mv命令用来为文件或目录改名,或将文件或目录移入其它位置。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

28810
来自专栏乐沙弥的世界

Linux 7下安装Python 3.6

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。

18210
来自专栏向治洪

Android Studio安装插件

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图: ? 区域1:你当前已经安装了的插件 区域2:在线安装 区...

21480
来自专栏Rainbond开源「容器云平台」

好雨云帮一周问答集锦(2017.04.17-2017.04.23)

14530
来自专栏云计算教程系列

使用Solr向您的站点添加自定义搜索

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展...

10410
来自专栏上善若水

013android初级篇之Android Studio 引用源码模块,jar及so文件

013android初级篇之Android Studio 引用源码模块,jar及so文件

25320
来自专栏青玉伏案

JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术

在上篇博客中,我们聊了《JavaEE开发之SpringMVC中的自定义拦截器及异常处理》。本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js、...

24760
来自专栏决胜机器学习

Redis专题(六)——Redis高可用(复制篇)

Redis专题(六) ——Redis高可用(复制篇) (原创内容,转载请注明来源,谢谢) 一、单台服务器 单台redis服务器,会出现单点故障,且需要承受所...

36860

扫码关注云+社区

领取腾讯云代金券