麒麟系统部署java环境需据网络与版本需求选择:一、在线用yum/dnf或apt装openjdk 11;二、离线下载匹配架构tar包,解压并配置/etc/profile;三、用update-alternatives注册多版本并交互切换;四、可先卸载预装旧版再重装。

如果您在麒麟操作系统上需要部署Java运行环境,但尚未安装OpenJDK或需在多个版本间灵活切换,则可能是由于系统未预装所需版本、预装版本不匹配应用要求,或需隔离不同项目依赖的JDK版本。以下是解决此问题的步骤:
一、使用系统包管理器在线安装OpenJDK
该方法适用于网络通畅、需快速部署标准版本OpenJDK的场景,由系统源自动处理依赖,无需手动解压与配置环境变量。
1、确认当前系统包管理器类型:执行cat /etc/os-release查看ID字段,若为centos或kylin且含yum或dnf,则使用YUM/DNF;若为ubuntu或kylin-ubuntu,则使用APT。
2、更新软件包索引:对于YUM系系统,运行sudo yum makecache;对于APT系系统,运行sudo apt update。
3、安装OpenJDK 11(推荐稳定LTS版本):YUM系执行sudo yum install -y java-11-openjdk-devel;APT系执行sudo apt install -y openjdk-11-jdk。
4、验证安装结果:执行java -version与javac -version,输出应显示openjdk version "11.开头的完整信息。
二、离线安装OpenJDK(tar.gz方式)
该方法适用于无外网环境、需指定JDK版本(如OpenJDK 17.0.2)、或需统一部署多台服务器的场景,要求手动解压并配置全局环境变量。
1、根据CPU架构下载对应安装包:执行uname -m,若返回aarch64,则必须下载ARM64版OpenJDK;若返回x86_64,则下载x86_64版;严禁混用架构,否则将导致“没有那个文件或目录”错误。
2、将openjdk-17.0.2_linux-aarch64_bin.tar.gz(或x86_64对应包)上传至目标路径,例如/usr/local/,并以root权限解压:sudo tar -zxvf openjdk-17.0.2_linux-aarch64_bin.tar.gz -C /usr/local/。
3、编辑系统级环境配置文件:sudo vim /etc/profile,在文件末尾新增三行:
export JAVA_HOME=/usr/local/jdk-17.0.2
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
4、使配置立即生效:source /etc/profile。
5、验证配置有效性:执行echo $JAVA_HOME应输出/usr/local/jdk-17.0.2;执行java -version应显示对应版本号。
三、通过update-alternatives实现多版本共存与切换
该方法适用于已安装多个JDK版本(如OpenJDK 8与OpenJDK 17),需在终端命令层面动态切换默认java/javac指向的场景,避免修改环境变量或重启会话。
1、注册OpenJDK 17为候选版本:执行sudo update-alternatives --install /usr/bin/java java /usr/local/jdk-17.0.2/bin/java 2;再执行sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk-17.0.2/bin/javac 2。
2、注册OpenJDK 8为候选版本(若已存在):假设其路径为/usr/lib/jvm/java-1.8.0-openjdk,执行sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1及对应javac命令。
3、交互式切换默认Java版本:运行sudo update-alternatives --config java,根据屏幕列出的编号选择目标版本;同理执行sudo update-alternatives --config javac同步切换编译器。
4、验证当前激活版本:执行java -version与update-alternatives --display java,确认输出与所选编号一致。
四、卸载系统预装OpenJDK(可选前置操作)
该方法适用于麒麟V10等版本预装了不兼容或过时OpenJDK(如仅含headless版本),导致javac缺失或java -version输出异常,需彻底清理后再安装目标版本。
1、列出已安装Java相关包:YUM系执行rpm -qa | grep -i jdk或rpm -qa | grep -i openjdk;APT系执行dpkg -l | grep -i jdk。
2、卸载全部OpenJDK组件:例如对java-1.8.0-openjdk-1:1.8.0.362.b09-1.ky10.aarch64执行sudo rpm -e --nodeps java-1.8.0-openjdk-1:1.8.0.362.b09-1.ky10.aarch64;对java-11-openjdk-headless等同理卸载。
3、清除残留配置:检查/etc/profile、~/.bashrc中是否含有旧JAVA_HOME定义,手动删除或注释。
4、验证卸载完成:执行java -version应报错“command not found”,且which java无输出。










