配色: 字号:
9-3 使用update-java-alternatives管理Java版本
2022-12-16 | 阅:  转:  |  分享 
  

使用 update-java-alternatives 管理 Java 版本

update-java-alternatives 是 专门用于管理 Java 版本 切换的工具,它依赖 update-alternatives
的注册。使用 APT 、dpkg 或 PPA 安装的 Java 版本已经自动完成相关设置,包括使用
update-alternatives --install 注册所需的候选项,并且创建了 update-java-alternatives 专用的
/usr/lib/jvm/.< 名称>.jinfo 配置文件。
可以直接使用该命令查看已经配置好的可供选择的 Java 版本 :
tester@linuxpc1:~$ update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
其中第 1 列是 jname ( 已安装的 Java 版本名称) 。 可以发现, 通过 Java 安 装包手动安
装 的 Java 版本,虽然可以使用 update-alternatives 命令进行版本管理,但是无法使用
update-java-alternatives 命令进行管理 。原因就是 缺乏相应的 .jinfo 配置文件。.jinfo 配置文
件是一个隐藏文件, 定义了 update-java-alternatives 工具所需的 必要信息。 可以进行如下查验
操作 :
tester@linuxpc1:~$ ls -l /usr/lib/jvm/..jinfo
-rw-r--r-- 1 root root 2047 10 月 29 17:11 /usr/lib/jvm/.java-1.11.0-
openjdk-amd64.jinfo
手动安装的 Java 必须自 行创建 .jinfo 配置文件。 这里参照安装 OpenJDK 时自动生成的
/usr/lib/jvm/.java-11-oracle.jinfo 文件为Oracle JDK 17 创建一个配套的
/usr/lib/jvm/.java-17-oracle.jinfo 文件, 内容如下 :
name=java-17-oracle
alias=java-17-oracle
priority=300
jdk java /usr/lib/jvm/java-17-oracle/bin/java
jdk javac /usr/lib/jvm/java-17-oracle/bin/javac
其中 priority 定义的是优 先级,数 字 越大优先 级 越高。最 后 面两行分 别 指定 Java 运行
时(java 命 令)和 Java 编译器(javac 命令)的 可执行文件路径。
接着执行以下命令查看已经配置好的可供选择的 Java 版本 :
tester@linuxpc1:~$ update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-17-oracle 300 /usr/lib/jvm/java-17-oracle
这样就可以使用 sudo update-java-alternatives -s 命 令明确指定要切换的 Java 版本了。
tester@linuxpc1:~$ sudo update-java-alternatives -s java-17-oracle
执行以下命令验证 Java 版本的切换成功。
tester@linuxpc1:~$ javac -version
javac 17.0.2
如果执行 sudo update-java-alternatives -a 命令,则 自动根据 .jinfo 配置文件 中的优先级
设置来切换 Java 版本。
献花(0)
+1
(本文系籽油荃面原创)