必须设置PATH,否则java/javac提示“command not found”;需通过/etc/profile.d/java.sh配置JAVA_HOME和PATH,并source生效,验证echo $JAVA_HOME、java -version、javac -version均成功。

Fedora 38 安装 Temurin JDK 17 后必须设置 PATH,否则终端里敲 java 或 javac 会提示“command not found”
Temurin JDK 17 不会像 Windows 那样弹出“添加到 PATH”的勾选项,Fedora 默认也不会自动把 JDK 的 bin 目录加入系统路径。你执行完 dnf install 后,java 命令依然不可用——这不是安装失败,而是 PATH 没告诉系统去哪找它。
确认 JDK 已正确安装并找到实际路径
先运行命令检查是否已装好开发包:sudo dnf install java-17-temurin-devel(若提示已安装则跳过)。
运行 rpm -ql java-17-temurin-devel | grep bin/javac,输出类似 /usr/lib/jvm/temurin-17-jdk-amd64/bin/javac 的路径,这就是你要用的 JDK 根目录。注意:不同架构(x86_64/aarch64)后缀可能为 -amd64 或 -aarch64,请以实际输出为准。
记下该路径中 bin 的上级目录,例如 /usr/lib/jvm/temurin-17-jdk-amd64 ——这将作为 JAVA_HOME 的值,也是后续 PATH 构建的基础。
全局生效:通过 /etc/profile.d/java.sh 设置 JAVA_HOME 和 PATH
这一步让所有用户(包括新创建的用户)都能直接使用 java、javac 等命令,无需重复配置。
用 root 权限创建脚本文件:sudo nano /etc/profile.d/java.sh
在文件中写入以下两行(请将 /usr/lib/jvm/temurin-17-jdk-amd64 替换为你上一步查到的真实路径):
export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存退出。注意:不要漏掉 $PATH 在末尾,否则系统原有命令(如 ls、cp)会失效。
立即加载新配置并验证
方法一(推荐):新开一个终端窗口,直接执行验证命令。
方法二:手动加载配置:source /etc/profile.d/java.sh
逐条运行以下三行命令,每行都应有合理输出:
echo $JAVA_HOME → 应显示你设置的完整路径
java -version → 应显示 openjdk version "17. 开头的信息
javac -version → 应显示 javac 17. 开头的信息
三项全部成功,PATH 已生效。无需重启系统或注销用户。

















