Fedora 34已安装Java却提示‘bash: java: command not found’错误
解决Fedora 34中Java安装后找不到命令的问题
你遇到的情况很常见——明明装了最新版OpenJDK,bash却找不到java命令,还一个劲提示要装Java 11的headless包。核心原因是Fedora的版本管理工具alternatives没把你刚装的最新Java设为默认,导致系统还在盯着旧版本的配置找命令。
下面是一步步的解决方法:
1. 确认已安装的Java路径
先搞清楚你装的java-latest-openjdk具体在系统的哪个位置,执行这条命令:
rpm -ql java-latest-openjdk.x86_64 | grep bin/java
你会得到类似这样的输出(版本号可能随实际安装情况变化):
/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.fc34.x86_64/bin/java
把这个完整路径记下来,后面要用到。
2. 配置alternatives默认Java版本
Fedora用alternatives管理系统级的软件版本默认项,我们需要把刚安装的最新Java注册进去并设为默认:
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.fc34.x86_64/bin/java 1
最后面的数字1是优先级,数字越大优先级越高,以后装更高版本的Java时设个更大的数就行。
接着执行配置命令选择默认版本:
sudo alternatives --config java
系统会列出所有已注册的Java版本,输入对应最新版本的序号回车即可。
3. (可选)配置javac命令
如果需要编译Java代码,同样要给javac做默认配置:
# 先找到javac的路径 rpm -ql java-latest-openjdk.x86_64 | grep bin/javac # 注册到alternatives sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.fc34.x86_64/bin/javac 1 # 选择默认版本 sudo alternatives --config javac
4. 验证安装结果
现在再执行java --version,应该就能看到你刚安装的最新Java版本信息了,也不会再提示找不到命令或者要求安装Java 11的包了。
如果还是有问题,可以检查PATH环境变量是否包含/usr/bin(Fedora默认是包含的),或者手动在~/.bashrc里添加JAVA_HOME配置:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.fc34.x86_64 export PATH=$PATH:$JAVA_HOME/bin
执行source ~/.bashrc让配置生效即可。
内容的提问来源于stack exchange,提问作者Thejan
相关产品推荐
相关产品推荐

