Skip to content

OpenJDK 安装及使用

OpenJDK 是 Java 的开发环境(JDK)的开源版本,完全自由,开放源码。

本教程将介绍如何在 SonmiHPC 集群上安装 OpenJDK,并提供给集群上用户使用。

安装方式

OpenJDK 的安装方式主要有以下三种:

  • 直接使用 YUM/DNF 等包管理器下载安装到全局;
  • 直接下载官方编译好的二进制可执行文件压缩包;
  • 从源码编译安装。

下面将分别介绍这三种安装方法。

1. 使用 YUM/DNF 包管理器安装

该方法需要有集群的管理员权限,并且该方式只能在集群单台节点上单独进行安装,也只能安装仓库中固定的版本,目前是 1.8.0 版本,因此不推荐。使用管理员账号执行下面命令安装即可:

shell
dnf install -y java-1.8.0-openjdk
dnf install -y java-1.8.0-openjdk

2. 直接下载二进制可执行文件压缩包

直接从官方的发行版链接中找到需要的版本,使用 wget 下载到集群中或者在本地下载完成后上传到集群中。下面以 OpenJDK 21为例。

执行下面命令下载压缩包,并解压缩:

shell
wget https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_linux-x64_bin.tar.gz
tar xzvf openjdk-21_linux-x64_bin.tar.gz
wget https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_linux-x64_bin.tar.gz
tar xzvf openjdk-21_linux-x64_bin.tar.gz

为方便集群上用户一起使用,创建一个共享的目录:

shell
mkdir -p /share/apps/openjdk/21
mkdir -p /share/apps/openjdk/21

把解压缩后的文件复制到新建的目录中:

shell
cp -r jdk-21/. /share/apps/openjdk/21/
cp -r jdk-21/. /share/apps/openjdk/21/

修改路径权限:

shell
chmod -R 755  /share/apps/openjdk/21/
chmod -R 755  /share/apps/openjdk/21/

为方便集群内用户使用,把 OpenJDK 以 Module 模块的方式提供给集群内其他用户使用,创建下面的文件夹,并在路径下创建一个 Modulefile 文件:

shell
mkdir -p /share/apps/modulefiles/openjdk
cd /share/apps/modulefiles/openjdk && vim 21
mkdir -p /share/apps/modulefiles/openjdk
cd /share/apps/modulefiles/openjdk && vim 21

新建文件内容如下:

tcl
#%Module###########################################
set modulefilename "OpenJDK"
set modulefilever  "21"

set min_tcl_ver 8.4
if { $tcl_version < $min_tcl_ver } {
    puts stderr " "
    puts stderr "ERROR: This modulefile requires tcl $min_tcl_ver or greater."
    puts stderr "Your system reports that tclsh version $tcl_version is installed."
    exit 1
}

if { [ module-info mode load ] } {
    puts stderr "Loading $modulefilename version $modulefilever"
}

if { [ module-info mode ] == "unload" || [ module-info mode ] == "remove" } {
    puts stderr "Removing $modulefilename version $modulefilever"
    puts stderr "Use  to view any remaining dependent modules."
}

set JAVA_HOME /share/apps/openjdk/21/
setenv JAVA_HOME $JAVA_HOME
prepend-path PATH $JAVA_HOME/bin
prepend-path LD_LIBRARY_PATH $JAVA_HOME/lib
#%Module###########################################
set modulefilename "OpenJDK"
set modulefilever  "21"

set min_tcl_ver 8.4
if { $tcl_version < $min_tcl_ver } {
    puts stderr " "
    puts stderr "ERROR: This modulefile requires tcl $min_tcl_ver or greater."
    puts stderr "Your system reports that tclsh version $tcl_version is installed."
    exit 1
}

if { [ module-info mode load ] } {
    puts stderr "Loading $modulefilename version $modulefilever"
}

if { [ module-info mode ] == "unload" || [ module-info mode ] == "remove" } {
    puts stderr "Removing $modulefilename version $modulefilever"
    puts stderr "Use  to view any remaining dependent modules."
}

set JAVA_HOME /share/apps/openjdk/21/
setenv JAVA_HOME $JAVA_HOME
prepend-path PATH $JAVA_HOME/bin
prepend-path LD_LIBRARY_PATH $JAVA_HOME/lib

保存文件,并设置以下权限即可:

shell
chmod -R 755 /share/apps/modulefiles
chmod -R 755 /share/apps/modulefiles

集群上用户执行下面命令就可以加载该模块:

shell
module load openjdk/21
module load openjdk/21

3. 从源码编译安装

由于该方法比较繁琐,并且对于大部分用户来说不是必须的方式,因此不进行介绍。如果有需求可以自行查阅参考官方的构建教程

参考链接

  1. OpenJDK 官网
  2. OpenJDK 各发行版下载链接

本站内容未经授权禁止转载
联系邮箱: [email protected]