介绍

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

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

准备

一台Ubuntu 18.04 的服务器,一个可以使用sudo命令的非root账户

安装默认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

如果没有安装,执行下面命令安装openJDK:

apt install default-jre

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

安装完成之后, 验证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 Development(JDK)才能编译和运行某些特定的基于java的软件, 执行命令安装:

apt install default-jdk

检查java编译器的javac版本,验证是否安装了JDK:

javac -version

javac 10.0.1

安装OpenJDK特定版本:

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

OpenJDK 8

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

apt install openjdk-8-jdk

验证是否已安装
java -version

也可以只安装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,请执行以下命令:

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版本关联的编号以将其作为默认编号,或按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路径。

保存文件并退出编辑器。

现在重新加载此文件:

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

Ubuntu18.04安装Java的更多相关文章

  1. Ubuntu18.04安装和配置Java JDK11并卸载自带OpenJDK

    卸载自带的OpenJDK方法: 在终端执行命令:sudo apt-get remove openjdk* Ubuntu18.04安装JDK11.0.2 前面步骤一样,可参考:https://www.c ...

  2. ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4

    1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...

  3. Ubuntu18.04安装mysql5.7

    Ubuntu18.04安装mysql5.7 1.1安装 首先执行下面三条命令: # 安装mysql服务 sudo apt-get install mysql-server # 安装客户端 sudo a ...

  4. Ubuntu18.04安装RabbitMQ

    Ubuntu18.04安装RabbitMQ 2018年06月10日 19:32:38 dmfrm 阅读数:2492    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  5. ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题(装)

    ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题      https://blog.csdn.net/NeptuneClouds/article/details/80995 ...

  6. Ubuntu18.04安装Virtualenv虚拟环境

    在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...

  7. Ubuntu18.04安装thunderbird并设置中文

    Ubuntu18.04安装thunderbird并设置中文 安装thunderbird sudo apt-get install thunderbird 安装中文包 sudo apt-get inst ...

  8. Ubuntu18.04安装Docker, centos7安装Docker

    Ubuntu18.04安装Docker 第一种方法从Ubuntu的仓库直接下载安装: 安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装. $ sudo a ...

  9. Ubuntu18.04 安装 oh-my-zsh

    目录 Ubuntu18.04 安装 oh-my-zsh 目录 安装zsh 安装curl 安装oh-my-zsh 使用zsh替换bash 修改终端主题和配色 修改终端配置 隐藏用户和主机名 效果图 Ub ...

  10. Ubuntu18.04 安装MySQL(Linux)解决登陆权限问题及Navicat for mysql 中文乱码问题

    一.MySQL(Linux)解决登陆权限问题 Ubuntu18.04 安装mysql或者mariadb之后,发现普通用户和远程都没有权限连接. ERROR 1045: Access denied fo ...

随机推荐

  1. C++ 性能反向优化——用哈希表unordered_map消除if else导致性能降低。

    从代码整洁的角度考虑,对于不同的值将调用相同参数的不同函数,我们通常可以通过建立从值到对应函数指针的哈希表,从而将if else消除.但实际可能使性能更低,以下是测试例子. 原因在于,if else分 ...

  2. ZEGO 自研客户端配置管理系统 —— 云控

    一.常规客户端配置的弊端 客户端配置信息通常会通过一个静态文件进行管理,或存放在本地或者通过远程获取.存在本地最大的问题是不易更新,所以通常做法是通过远程获取. 我们通过两种常见的场景来看看静态文件管 ...

  3. OData – 权限管理

    前言 OData 其实没有权限的机制, Client 可以任意的 $select, $expand. 即便它可以做简单防御设置, 但是离平常的业务需求还是很远. 一般上 query entity 常见 ...

  4. 图解MQTT概念、mosquitto编译和部署 ,写代码,分别使用外网和本地服务器进行测试

    前沿提要: MQTT是什么不知道? 看这一篇:https://www.cnblogs.com/happybirthdaytoyou/p/10362336.html 阿里云官网玩不转? 看这一篇: ht ...

  5. python3 numpy的一些小知识点

    简介 一个用python实现的科学计算,包括: 1.一个强大的N维数组对象Array: 2.比较成熟的(广播)函数库: 3.用于整合C/C++和Fortran代码的工具包: 4.实用的线性代数.傅里叶 ...

  6. C语言数据类型、变量的输入和输出、进制转换

    scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件 在scanf函数调用语句里应该使用存储区的地址表示存储区:双引号里使用占位符表示存储区的类型 ...

  7. 八字测算api接口数据示例_奥顺八字测算接口分享

    八字测算免费api接口,每日开放时间在早上8点到晚上十点,本api接口完全免费,是奥顺居八字测算网程序内部接口,提供本地调用的,现在免费分享出来,仅供测试. 接口名称:八字精批测算api接口示例 接口 ...

  8. Camera 冷启动阶段分解

    目录 一.Camx trace 调试开关设置 1.设置 camxoverridesettings trace开关 2. 重启后设置开启camx trace 开关 二.Camera 冷启动阶段分解分析 ...

  9. query和params的区别

    2者都是编程式路由跳转用来存放传递数据的位置,query使用path引入,数据显示在地址栏上,params使用name引入,传递的数据在页面看不见 :

  10. 探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径

    在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要.对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解 ...