如何让Bazel依赖Oracle JDK而非OpenJDK(Ubuntu 18.04 LTS环境)
我来帮你搞定这个命令冲突的问题!在Ubuntu 18.04上把你已经安装的HotSpot JDK 1.8.0_172设为默认JDK,用系统自带的update-alternatives工具就能轻松实现,步骤如下:
1. 查看当前系统已注册的Java版本
先确认你的HotSpot JDK是否已经被系统的alternatives工具识别,运行以下命令:
update-alternatives --list java update-alternatives --list javac
如果输出里能看到/usr/local/jdk1.8.0_172/bin/java(或者你实际安装HotSpot的路径),直接跳到第三步;如果没有,先执行第二步添加它。
2. 将HotSpot JDK注册到alternatives工具
假设你的HotSpot JDK安装路径是/usr/local/jdk1.8.0_172,运行以下命令注册java和javac命令:
# 注册java命令 sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_172/bin/java 100 # 注册javac命令 sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_172/bin/javac 100
这里的100是优先级数值,比OpenJDK默认的优先级(通常是50)高,这样系统会优先选择HotSpot的版本。
3. 设置HotSpot为默认JDK
运行以下命令手动选择默认的Java版本:
sudo update-alternatives --config java
命令执行后会列出所有可用的Java版本,输入对应HotSpot JDK的编号(比如1)并回车即可。
同样的操作设置默认的javac:
sudo update-alternatives --config javac
4. 验证设置是否成功
运行以下命令检查当前默认的Java版本:
java -version javac -version
如果输出显示java version "1.8.0_172"且带有HotSpot字样,说明设置成功了。
关于Bazel安装的补充说明
其实Bazel并不是强制要求OpenJDK,只要你的默认JDK是1.8版本(你用的正好符合),安装后切换到HotSpot也能正常运行。如果安装Bazel时系统提示必须安装OpenJDK,你可以临时切换到OpenJDK完成安装,之后再按照上面的步骤切回HotSpot即可,不会影响Bazel的使用。
内容的提问来源于stack exchange,提问作者pah8J

