如何在Debian 10上安装Java with Apt
介绍 许多软件都需要Java和JVM(Java虚拟机),包括Tomcat、Jetty、Glassfish、Cassandra和Jenkins。 在本指南中,您将使用Debian的apt包管理系统安装不同版本的Java Runtime Environment(JRE)和Java Developer Kit(JDK)。 您将安装OpenJDK 11以及Oracle的官方Java 11软件。然后,您将选
介绍
许多软件都需要Java和JVM(Java虚拟机),包括Tomcat、Jetty、Glassfish、Cassandra和Jenkins。
在本指南中,您将使用Debian的apt
包管理系统安装不同版本的Java Runtime Environment(JRE)和Java Developer Kit(JDK)。
您将安装OpenJDK 11以及Oracle的官方Java 11软件。然后,您将选择希望用于项目的版本。完成后,您将能够使用JDK开发软件或使用Java运行时运行软件。
先决条件
要开始本教程,您需要:
- 一台Debian 10服务器,具有非根用户、启用
sudo
的用户。您可以按照我们的Debian 10 initial server setup guide进行设置。
安装默认JRE/JDK
安装Java最简单的选择是使用Debian打包的版本。默认情况下,Debian 10包括OpenJDK版本11,它是JRE和JDK的开源变体,与Java 11兼容。
Java 11是Java的当前长期支持版本。
要安装Java的OpenJDK版本,请首先更新apt
包索引:
sudo apt update
接下来,检查是否已安装Java:
java -version
如果当前未安装Java,您将看到以下输出:
Output-bash: java: command not found
然后使用apt install
命令安装OpenJDK:
sudo apt install default-jre
这将安装Java Runtime Environment(JRE),允许您运行几乎所有的Java软件。
使用以下工具验证安装:
java -version
您将看到以下输出:
Outputopenjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1deb10u1, mixed mode, sharing)
为了编译和运行一些特定的基于Java的软件,您可能还需要Java开发工具包(JDK)。要安装JDK,请执行以下命令:
sudo apt install default-jdk
通过检查Java编译器javac
的版本来验证是否安装了JDK:
javac -version
您将看到以下输出:
Outputjavac 11.0.4
接下来,让我们看看如何安装Oracle的官方JDK和JRE。
安装Oracle JDK
要安装官方的Oracle JDK,我们需要直接从Oracle下载一些文件,然后使用从第三方存储库获取的安装程序进行安装。
首先,让我们从Oracle的网站下载Java。
下载Oracle的Java SE软件包
由于Oracle处理Java许可的方式最近发生了变化,在继续安装之前,您需要创建一个Oracle帐户并直接从其网站下载软件。
如果您还没有Oracle帐户,请在Oracle的帐户创建页面创建一个。
然后,导航到Oracle的Java SE下载页面:
我们需要确保下载的是正确的Java版本,因为它需要符合安装程序的期望。我们可以通过访问安装程序软件库的软件包清单来检查安装程序需要什么版本。
我们将在下一步从该存储库下载安装,但现在请查找oracle-java11-installer-local...
文件:
在这种情况下,我们可以看到安装程序预期的是11.0.4版本。忽略包版本号中-
连字符后面的任何数字(上面示例屏幕截图中的1
)。
现在我们知道了正确的版本号,向下滚动Java下载页面,直到找到正确的版本:
按下下载按钮,您将进入最后一个屏幕:
选择接受许可协议单选按钮,然后单击.tar.gz
Linux软件包,即可开始下载。在下载开始之前,您可能需要再次登录到您的Oracle帐户。
下载完成后,我们需要将下载的文件放到服务器上。我们将使用scp
命令来执行此操作,但您可以使用任何您熟悉的文件传输软件。
在本地计算机上,使用scp
将文件上载到服务器。以下命令假设您的文件已下载到用户主文件夹中的下载目录,并将上载到服务器上的sammy用户主目录。根据系统需要调整文件路径:
scp ~/Downloads/jdk-11.0.4_linux-x64_bin.tar.gz sammy@your_server_ip:~
现在我们已经在服务器上安装了正确的Java软件包,让我们添加repo,其中包含我们将用于安装Java的安装程序。
添加安装程序的Apt存储库
首先,安装software-properties-common
软件包,该软件包将add-apt-repository
命令添加到您的系统中:
sudo apt install software-properties-common
接下来,导入用于验证我们要安装的软件的签名密钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
然后,我们使用add-apt-repository
命令将repo添加到包源列表中:
sudo add-apt-repository ppa:linuxuprising/java
您将看到以下消息:
Output Oracle Java 11 (LTS) and 12 installer for Ubuntu, Linux Mint and Debian.
Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 11, so a working Internet connection is required.
The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Created for users of https://www.linuxuprising.com/
Installation instructions (with some tips), feedback, suggestions, bug reports etc.:
. . .
Press [ENTER] to continue or ctrl-c to cancel adding it
按ENTER
继续安装。你可能会看到一条关于no valid OpenPGP data found
的消息。这可以忽略。
最后,更新软件包列表,使新软件可用于安装:
sudo apt update
接下来,我们将使用我们刚刚提供的新软件安装Java包。
安装下载的Java软件
首先,我们需要创建安装程序用于查找Java软件包的特定目录,然后将.tar.gz
文件复制到:
sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp ~/jdk-11.0.4_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
文件拷贝完成后,通过安装oracle-java11-installer-local
软件包安装Oracle的Java 11:
sudo apt install oracle-java11-installer-local
安装程序将首先要求您接受Oracle许可协议。接受协议后,安装程序将提取Java包并进行安装。
现在我们已经安装了多个版本的Java,让我们看看如何选择要使用的Java版本。
管理Java
您可以在一台服务器上安装多个Java。您可以使用update-alternatives
命令配置命令行上使用的默认版本。
sudo update-alternatives --config java
如果您在本教程中安装了两个版本的Java,则输出会是这样的:
OutputThere are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
Press <enter> to keep the current choice[*], or type selection number:
选择与Java版本相关的数字作为默认值,或按ENTER
保留当前设置。
您可以对其他Java命令执行此操作,例如编译器(javac
):
sudo update-alternatives --config javac
可以运行此命令的其他命令包括但不限于:keytool
、javadoc
和jarsigner
。
接下来设置JAVA_HOME
环境变量。
设置JAVA_HOME
环境变量
许多用Java编写的程序使用JAVA_HOME
环境变量来确定要使用的Java安装位置。
要设置此环境变量,首先确定Java的安装位置。再次使用update-alternatives
命令:
sudo update-alternatives --config java
此命令显示Java的每次安装及其安装路径:
Output Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
在这种情况下,安装路径如下:
-
Oracle Java 11位于
/usr/lib/jvm/java-11-oracle/bin/java
。 -
OpenJDK 11位于
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
。
这些路径显示java
可执行文件的路径。
复制首选安装的路径,不包括后续bin/java
组件。然后使用nano
或您最喜欢的文本编辑器打开/etc/environment
:
sudo nano /etc/environment
该文件最初可能为空。在文件末尾,添加以下行,确保用自己复制的路径替换高亮显示的路径:
/etc/环境
JAVA_HOME="/usr/lib/jvm/java-11-oracle/"
修改此文件将为系统上的所有用户设置JAVA_HOME
路径。
保存文件并退出编辑器。
现在重新加载此文件以将更改应用于当前会话:
source /etc/environment
验证是否设置了环境变量:
echo $JAVA_HOME
您将看到刚才设置的路径:
Output/usr/lib/jvm/java-11-oracle/
其他用户需要执行命令source /etc/environment
或注销并重新登录才能应用此设置。
结论
在本教程中,您安装了多个Java版本,并学习了如何管理它们。您现在可以安装在Java上运行的软件,如Tomcat、Jetty、Glassfish、Cassandra或Jenkins。
更多推荐
所有评论(0)