在国产操作系统上运行Java程序,最常遇到的尴尬就是终端提示“java: command not found”。这个问题几乎只有一个答案:系统里没有安装JDK。只装JRE也不行,因为编译离不开javac。因此,整个流程的核心,就是先搞清楚当前机器的硬件架构与系统版本,再对症下药——安装OpenJDK或者手动解压并配置环境变量。

别急,一步步来。
确认系统架构与包管理器类型
这一步跳过去的话,后面大概率会收到“没有那个文件或目录”的错误提示。
打开终端,先执行 uname -m:如果屏幕上出现【aarch64】,说明是ARM64架构,适用于鲲鹏、飞腾等芯片;如果是【x86_64】,则是标准的AMD64/x86架构,海光、兆芯都能对应。
接着检查包管理器类型。用 cat /etc/os-release 查看ID字段——如果出现【kylin-ubuntu】或直接是【ubuntu】,属于APT系;如果ID是【kylin】且能执行yum或dnf命令,则走YUM/DNF路线。
最后,顺便验证一下:java -version 和 javac -version 如果都报错“command not found”,说明JDK确实缺失。如果只有java有输出而javac报错,则只装了JRE,缺少编译环境。
在线安装OpenJDK(网络通畅时首选)
在线安装是最省心的方案,系统自带软件源会自动处理依赖和环境变量,多数新版本镜像甚至已预设好JAVA_HOME。
方法一:APT系系统(比如Kylin Desktop,基于Ubuntu Kylin)
第一步更新包索引:sudo apt update。
然后安装OpenJDK 11(LTS,非常稳定):sudo apt install -y openjdk-11-jdk。想用更新的JDK 17也可以:sudo apt install -y openjdk-17-jdk。
方法二:YUM/DNF系系统(典型的Kylin Server)
先同步元数据:sudo yum makecache 或 sudo dnf makecache。
接着直接安装JDK 17:sudo yum install -y java-17-openjdk-devel。需要JDK 11的话,把17改成11即可。
安装完成后务必验证。用 java -version 和 javac -version 各执行一次,输出必须完全一致,且包含【openjdk】字样才算安装成功。
离线安装OpenJDK(断网/指定小版本/多机统一部署)
如果网络不通,或者需要统一特定小版本,离线手动安装更可靠。
第一步:下载并解压JDK
① 根据刚才 uname -m 得到的结果,前往Adoptium Temurin或毕昇JDK官网下载对应架构的tar.gz包。注意:ARM64用户千万别下载错,一定要选择带 aarch64_linux_hotspot_17.0.11_9.tar.gz 这种名称的包。
② 将压缩包上传到 /opt/ 目录下,然后解压:sudo tar -zxvf jdk-.tar.gz -C /opt/。
③ 为了方便后续升级,创建一个版本无关的软链接:sudo ln -s /opt/jdk-17.0.11_9 /opt/jdk。
第二步:配置全局环境变量
编辑系统级配置文件:sudo vim /etc/profile,在文件末尾追加三行:
export JAVA_HOME=/opt/jdk
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:$PATH
一个关键细节:PATH 中的 ${JAVA_HOME}/bin 必须放在原有的 $PATH 前面,否则系统可能优先调用旧版本或残留的其他路径下的java命令,导致混乱。
第三步:使配置生效并验证
立即生效:source /etc/profile。
验证环节:echo $JAVA_HOME 应输出 /opt/jdk;
再执行 java -version 确认版本号;
最关键的是 javac -version,如果无法正常返回,说明安装的是JRE而非JDK,编译环境仍未到位。
