Ubuntu系统无法识别已安装JDK,执行java -version无对应版本显示
问题原因及解决方法
这是因为你手动解压的JDK还没被系统识别——系统的环境变量PATH里没有包含这个JDK的bin目录,所以当你输入java命令时,系统只会去默认的系统路径里查找,找不到就会提示你安装包管理工具里的JDK/JRE版本。
下面是具体的解决步骤:
临时生效(仅当前终端会话)
如果只是想临时测试这个JDK,直接在终端执行以下命令:
export PATH=/opt/java/jdk-10.0.1/bin:$PATH
之后再运行java -version,就能看到JDK 10.0.1的版本信息了。
永久生效(所有终端会话及开机自动加载)
要让配置永久生效,需要修改环境变量配置文件,有两种方式可选:
方式1:用户级配置(仅当前用户生效)
- 打开用户主目录下的
.bashrc文件:
nano ~/.bashrc
- 在文件末尾添加以下内容:
export JAVA_HOME=/opt/java/jdk-10.0.1 export PATH=$JAVA_HOME/bin:$PATH
- 保存并退出(nano编辑器中按
Ctrl+O确认保存,再按Ctrl+X退出)。 - 让配置立即生效:
source ~/.bashrc
方式2:系统级配置(所有用户生效)
如果要让所有用户都能使用这个JDK,可修改系统全局配置文件:
- 打开
/etc/profile文件(需要管理员权限):
sudo nano /etc/profile
- 在文件末尾添加同样的环境变量内容:
export JAVA_HOME=/opt/java/jdk-10.0.1 export PATH=$JAVA_HOME/bin:$PATH
- 保存退出后,执行以下命令让配置生效:
source /etc/profile
可选:用update-alternatives管理多JDK版本
如果你的系统里有多个JDK版本,推荐用update-alternatives工具统一管理:
- 先注册JDK的
java命令:
sudo update-alternatives --install /usr/bin/java java /opt/java/jdk-10.0.1/bin/java 100
这里的100是优先级,数字越大优先级越高。
2. 同理注册javac命令(需要编译Java代码时用):
sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk-10.0.1/bin/javac 100
- 切换默认JDK版本:
sudo update-alternatives --config java
按照终端提示输入对应编号,就能切换到目标版本。
完成以上操作后,再运行java -version,就能正常显示你安装的JDK 10.0.1版本了。
内容的提问来源于stack exchange,提问作者kartikeykant18
相关产品推荐
相关产品推荐

