在 Arch Linux 或其衍生发行版中(如 Manjaro),开发者和用户常常需要在多个 Java 版本之间切换,以满足不同软件对 JDK 的依赖要求。本文将介绍如何在 Arch 系统中并行安装多个 Java 版本,并使用 archlinux-java 工具进行版本管理和切换。


一、查看已安装的 Java 版本

可以使用以下命令列出系统中当前可用的 Java 环境:

archlinux-java status

输出示例:

Available Java environments:
java-11-openjdk
java-17-openjdk
java-24-openjdk
java-8-openjdk/jre (default)

括号中标注 (default) 的版本即当前系统默认使用的 Java 版本。


二、安装所需的 Java 版本

Arch 的官方仓库提供多个 OpenJDK 版本,常见安装命令如下:

# 安装 Java 8
sudo pacman -S jre8-openjdk

# 安装 Java 11
sudo pacman -S jre11-openjdk

# 安装 Java 17
sudo pacman -S jre17-openjdk

# 安装 Java 21 或更新版本(如 Java 24)
sudo pacman -S jre-openjdk

所有版本都会被安装到 /usr/lib/jvm/ 目录下,并不会互相冲突,支持共存。


三、切换默认 Java 版本

使用 archlinux-java 可以设置系统默认的 Java 环境。例如将默认版本设置为 Java 11:

sudo archlinux-java set java-11-openjdk

切换后可以再次执行 archlinux-java status 验证。


四、按需使用特定 Java 版本运行程序

无需更改系统默认设置,也可通过指定路径方式调用特定版本的 Java。例如使用 Java 11 启动某个应用:

/usr/lib/jvm/java-11-openjdk/bin/java -jar application.jar

这种方式适用于只需某个应用使用特定 JDK,而不影响系统其他程序。


五、卸载不再使用的版本

如果某些 Java 版本已不再需要,可以通过 pacman 卸载:

sudo pacman -R jre8-openjdk

注意:不要卸载当前设为默认的版本,建议先切换默认版本后再删除。


六、常见问题:Java 版本不兼容错误

当运行某些 Java 程序时,可能会遇到如下错误:

java.lang.UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime

这表示当前 Java 环境版本过低,无法运行由更新版本编译的程序。通过切换到更高版本的 JDK(如 Java 11 或 17)通常可以解决问题。


结语

在 Arch Linux 上安装并切换多个 Java 版本是一项非常实用的技能,特别是在需要兼容不同软件时。通过 archlinux-java 工具可以方便地完成环境切换,避免频繁卸载/安装 JDK 所带来的麻烦。借助这一机制,系统能够灵活适应多样化的开发与运行需求。

Leave a Reply

Your email address will not be published. Required fields are marked *