在 Debian 8 上如何使用 Apt-Get 安装 Java

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介

编程语言 Java 和 Java 虚拟机(JVM)被广泛使用,并且对于许多类型的软件都是必需的。

本教程提供了在 Debian 8 上安装 Java 的不同方法:您可以下载默认的 JRE 或 JDK,也可以选择安装 Oracle JDK。如果您决定安装多个版本的 Oracle Java,可以按照管理 Java 部分的步骤进行操作。最后一部分概述了设置 JAVA_HOME 环境变量。

先决条件

要按照本教程操作,您需要:

  • 一个 Debian 8 服务器。
  • 一个 sudo 非根用户,您可以按照 Debian 8 初始服务器设置指南进行设置。

安装默认的 JRE/JDK

安装 Java 的最简单选项是使用 Debian 打包的版本。具体来说,这将安装 OpenJDK 8,这是最新和推荐的版本。

首先,更新软件包索引。

command 复制代码
sudo apt-get update

接下来,安装 Java。具体来说,此命令将安装 Java 运行环境(JRE)。

command 复制代码
sudo apt-get install default-jre

在提示时,输入 y 确认安装。

还有另一种名为 JDK(Java 开发工具包)的默认 Java 安装。只有在您要编译 Java 程序或特定软件明确要求使用 Java 时才需要 JDK。

JDK 包含 JRE,因此如果安装 JDK 而不是 JRE,除了文件大小更大之外,没有任何缺点。

您可以使用以下命令安装 JDK:

command 复制代码
sudo apt-get install default-jdk

现在您已经安装了 Java 运行环境或 Java 开发工具包。

安装 Oracle JDK

如果您想安装由 Oracle 官方分发的 Oracle JDK,您需要跟随一些额外的步骤。首先,您需要安装 software-properties-common 软件包,以便使用 apt-get-repository 命令。这将用于将存储库添加到您的源列表并导入相关的密钥。

command 复制代码
sudo apt-get install software-properties-common

在提示时确认安装,输入 y

为了确保我们在 Debian 上获得正确的源行,我们需要运行以下命令,同时修改该行:

command 复制代码
sudo add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"

完成后,我们需要更新:

command 复制代码
sudo apt-get update

现在我们将通过安装不同版本的 Java 来完成安装过程。您可以决定要安装哪些版本,并可以选择安装一个或多个版本。因为它是最新的稳定版本,所以在撰写本文时,Oracle JDK 8 是推荐的版本。

Oracle JDK 8

Oracle JDK 8 是撰写本文时的最新稳定版本。您可以使用以下命令安装它:

command 复制代码
sudo apt-get install oracle-java8-installer

同样,您将被提示输入 y 确认安装。您还需要接受 Oracle 二进制代码许可条款。使用箭头键选择"是",然后按"Enter"接受许可条款。

安装完成后,您可以验证您的 Java 版本:

command 复制代码
javac -version

您将收到类似于以下内容的输出:

javac 1.8.0_111

此时,您已经安装了 Oracle JDK 8,但您可能还想安装以下一个或多个版本。如果您准备好开始,请跳转到下面的管理 Java 部分。

Oracle JDK 9

Oracle JDK 9 目前可以通过其开发者预览进行早期访问。正式发布计划于 2017 年夏季。您可以在官方 JDK 9 网站上找到有关 Java 9 的更多信息。

要安装 JDK 9,请使用以下命令:

command 复制代码
sudo apt-get install oracle-java9-installer

尽管值得调查 Oracle JDK 9,但可能仍然存在安全问题和错误,因此您应该选择 Oracle JDK 8 作为默认版本。

管理 Java

一个服务器上可以安装多个 Java 版本。您可以使用 update-alternatives 配置哪个版本在命令行中是默认使用的,它管理不同命令使用的符号链接。

command 复制代码
sudo update-alternatives --config java

输出将类似于以下内容。在本例中,上述所有 Java 版本都已安装。

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

  Selection    Path                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-9-oracle/bin/java       1091      auto mode
  1            /usr/lib/jvm/java-6-oracle/jre/bin/java   1083      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java   1082      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      manual mode
* 4            /usr/lib/jvm/java-9-oracle/bin/java       1091      manual mode

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

在这种情况下,如果按下回车键,Java 9 将保持为默认版本。例如,我们按 3 选择 Java 8,将收到以下输出:

update-alternatives: using /usr/lib/jvm/java-8-oracle/jre/bin/java to provide /usr/bin/java (java) in manual mode

现在 Java 8 将成为默认版本。选择最适合您项目的默认 Java 版本。

update-alternatives 命令也可用于其他 Java 命令,如编译器(javac)、文档生成器(javadoc)、JAR 签名工具(jarsigner)等。您可以使用以下命令,填写您想要自定义的命令。

command 复制代码
sudo update-alternatives --config command

这将使我们能够更好地控制每种情况下要使用的默认 Java 版本。

设置 JAVA_HOME 环境变量

许多程序,比如 Java 服务器,使用 JAVA_HOME 环境变量来确定 Java 的安装位置。要设置这个环境变量,我们首先需要找出 Java 的安装位置。您可以通过执行与上一节相同的命令来完成这一步:

command 复制代码
sudo update-alternatives --config java

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

command 复制代码
sudo nano /etc/environment

在这个文件中,添加以下行,确保用您自己复制的路径替换高亮显示的路径。

JAVA_HOME="/usr/lib/jvm/java-8-oracle"

保存并退出文件,然后重新加载它。

command 复制代码
source /etc/environment

您现在可以通过执行以下命令来测试环境变量是否已设置:

command 复制代码
echo $JAVA_HOME

这将返回您刚刚设置的路径。

结论

您现在已经安装了 Java,并且知道如何管理不同版本的 Java。您现在可以安装运行在 Java 上的软件,比如 Tomcat、Jetty、Glassfish、Cassandra 或 Jenkins。

相关推荐
光芒再现dev15 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
为将者,自当识天晓地。17 分钟前
c++多线程
java·开发语言
daqinzl25 分钟前
java获取机器ip、mac
java·mac·ip
AndyFrank28 分钟前
mac crontab 不能使用问题简记
linux·运维·macos
激流丶41 分钟前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue44 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
成都古河云1 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
算法与编程之美1 小时前
文件的写入与读取
linux·运维·服务器