手动安装Java 8u162后,apt-get仍尝试安装8u151的解决咨询
解决系统识别手动安装的Java 8u162问题
别担心,这个场景很常见——手动装完JDK后,系统还没“认”到它,所以apt才会继续尝试下载旧版本。按下面几步操作就能快速搞定:
1. 先确认手动安装的Java能正常运行
先执行这条命令验证你的安装路径没问题:
/usr/lib/jvm/java-8-oracle/bin/java -version
如果输出显示java version "1.8.0_162",说明安装本身没问题,继续下一步。
2. 用update-alternatives注册你的Java版本
系统靠update-alternatives工具管理默认命令的版本,我们需要把手动装的Java注册进去,让系统“看见”它:
注册java命令
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-oracle/bin/java 100
这里的100是优先级,数字越高越优先,确保比apt可能安装的版本优先级更高。
注册javac命令(如果需要编译功能)
如果日常要用javac编译代码,同样注册:
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-oracle/bin/javac 100
(可选)注册其他Java工具
如果用到jar、javadoc这类工具,也可以用相同方式注册,比如:
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-8-oracle/bin/jar 100
3. 设置默认使用你的Java版本
执行下面的命令选择默认Java:
sudo update-alternatives --config java
这时会弹出版本列表,找到你刚注册的/usr/lib/jvm/java-8-oracle/bin/java,输入对应的编号回车即可。
同样,给javac也设置默认:
sudo update-alternatives --config javac
4. 验证生效情况
现在执行以下命令,确认系统已经识别到8u162:
java -version javac -version
如果输出都是1.8.0_162,就说明成功了。这时候再用apt-get操作,系统就不会再尝试下载8u151了——因为它已经检测到你有更高优先级的Java版本。
额外保险:阻止apt自动安装旧版本
要是还担心apt偷偷装旧版本,可以把Java相关包设为“锁定”状态:
sudo apt-mark hold oracle-java8-installer
(如果你的系统里对应包名不是这个,可以先通过dpkg -l | grep java查找准确包名再替换)
内容的提问来源于stack exchange,提问作者Socrates
相关产品推荐
相关产品推荐

