手动安装可以让用户更好的控制Java运行时环境。
使用Linux发行版的软件包管理工具来安装Java软件包是很容易的。然而,有时你需要手动安装Java。这对基于Java的应用服务器(如Tomcat或JBoss)的管理员特别重要。许多开源和专有软件产品都依赖于这些服务。
开发者或运行时套件?
Java虚拟机JavaVirtualMachine(JVM)以两种不同的形式提供:Java开发工具包JavaDevelopmentKit(JDK)或Java运行时环境JavaRuntimeEnvironment(JRE)。
软件开发人员通常需要JDK。它包含编译、运行和测试源代码所需的二进制文件。部署一个预先建立的Java应用程序通常只需要JRE。它不包括编译器和其他开发工具。由于安全性的提高和空间的限制,通常在生产环境中安装JRE。
获取Java
你可以从网上下载开源的Java软件。你可以在RedHatDeveloper、Adoptium.net下载OpenJDK打包文件,或从Azul下载Zulu社区版。
安装Java
设置一个目录来存放Java文件。我喜欢创建一个简单的名为java的目录,这样我就可以在一个专门的目录中下载并解压打包文件:
$mkdir-pjava/jdk
让我们在这个例子中使用JDK。将下载的文件保存到jdk目录下。然后换到该目录:
$cdjava/jdk$lsOpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz
提取该打包文件。注意,tar会创建一个新的目录:
$tarxvzfOpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz$lsjdk-11.0.12+7OpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz
使用-version选项确认新JVM的版本。
$cdjdk-11.0.12+7/bin$./java-version
JVM的版本输出看起来类似这样:
openjdkversion"11.0.12"2021-07-20OpenJDKRuntimeEnvironmentTemurin-11.0.12+7(build11.0.12+7)OpenJDK64-BitServerVMTemurin-11.0.12+7(build11.0.12+7,mixedmode)
环境变量
为了确保一个特定的应用程序能够正常工作,它需要确切地知道如何定位JVM。有两个主要的变量需要设置:JAVA_HOME和PATH。
$echo$JAVA_HOME$echo$PATH
这些可以在用户的.bashrc文件中设置。确保这些变量出现在任何设置PATH的现有代码之后:
#SettheJAVA_HOMEexportJAVA_HOME=~/java/jdk/jdk-11.0.12+7#AddtheJAVA_HOMEtothePATHexportPATH="$JAVA_HOME/binPATH"
手动安装的情况
有几种情况需要手动安装Java。请考虑以下三种情况:
一种情况可能是要求使用不同的,也许是较早的,在你的Linux发行版的软件库中已经没有的Java版本。
另一个例子可能是由安全推动的决定,即Java不会被默认安装在操作系统上或在“根级别”上。
第三种情况是可能需要几个不同版本的Java,通常是因为J2EEWeb应用程序的多个实例在同一台服务器上运行。由于越来越多地使用虚拟机和容器来隔离进程,这种操作系统共享在今天已经不太常见了。然而,由于需要维护不同的容器镜像,对手动安装的理解仍然至关重要。
总结
我演示了我手动安装Java运行时环境的方式,但你可以制定一个最适合你需求的惯例。最终,手动安装让用户可以更好的控制Java运行时环境。