一个 PowerShell 模块,用于在 Windows 上管理和切换多个 Java 版本,类似于 Linux 上的 archlinux-java。
- 🔄 轻松切换 Java 版本
- 📋 列出所有 已安装的 Java 版本
- ✅ 查看状态 当前激活的 Java 版本
- 🛠️ 自动配置 JAVA_HOME 和 PATH 环境变量
- 🔗 符号链接管理 自动创建和管理 Java 版本链接
- 🌍 支持多个供应商 在同一 repository 中管理不同供应商的 Java
- Windows 7 及更高版本
- PowerShell 5.1 或更高版本
- 管理员权限(用于创建符号链接和配置环境变量)
$modulePath = "$PROFILE\..\Modules\SwitchJava"
mkdir $modulePath -Force
Copy-Item -Path "SwitchJava.psd1", "SwitchJava.psm1" -Destination $modulePath将 SwitchJava.psd1 和 SwitchJava.psm1 复制到以下任一位置:
$PROFILE\..\Modules\SwitchJava\$env:ProgramFiles\PowerShell\Modules\SwitchJava\- 你的自定义 PSModulePath 目录
JAVA_REPOSITORY/
├── Oracle/
│ ├── 11
│ ├── 17
│ └── 21
├── OpenJDK/
│ ├── 11
│ └── 17
└── default/ (符号链接,由模块创建)
设置 JAVA_REPOSITORY 环境变量,指向你的 Java 安装目录:
# 方式一:通过 PowerShell(用户级别)
[Environment]::SetEnvironmentVariable("JAVA_REPOSITORY", "D:\Java", "User")
# 方式二:通过 PowerShell(系统级别,需要管理员权限)
[Environment]::SetEnvironmentVariable("JAVA_REPOSITORY", "D:\Java", "Machine")
# 方式三:通过环境变量对话框(图形界面)
# 编辑系统环境变量 → 新建 JAVA_REPOSITORYImport-Module SwitchJava
Switch-Java init这将帮助你自动配置 JAVA_HOME 和 PATH 环境变量。
Import-Module SwitchJavaSwitch-Java helpSwitch-Java list输出示例:
Available Java versions:
==================================================
OpenJDK/11 (default)
OpenJDK/17
OpenJDK/21
Switch-Java status输出示例:
Current Java version: OpenJDK/11
Version details:
openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
# 切换到 OpenJDK 17
Switch-Java set OpenJDK/17
# 切换到 OpenJDK 21
Switch-Java set OpenJDK/21Switch-Java unset这将移除 default 符号链接,但不会删除任何 Java 安装。
| 命令 | 描述 |
|---|---|
Switch-Java init |
初始化 Java 环境变量配置 |
Switch-Java status |
显示当前激活的 Java 版本 |
Switch-Java list |
列出所有可用的 Java 版本 |
Switch-Java set <VERSION> |
设置指定版本为默认版本 |
Switch-Java unset |
取消设置默认版本 |
Switch-Java help |
显示帮助信息 |
每个 Java 安装目录必须包含 bin\java.exe:
JAVA_REPOSITORY/
└── <VENDOR>/
└── <VERSION>/
├── bin/
│ ├── java.exe
│ ├── javac.exe
│ └── ...
├── lib/
├── conf/
└── ...
模块会自动配置以下环境变量:
- JAVA_HOME: 指向当前选择的 Java 版本(通过 default 符号链接)
- PATH: 添加
%JAVA_REPOSITORY%\default\bin
A: 是的。创建符号链接和配置系统级环境变量都需要管理员权限。请以管理员身份运行 PowerShell。
A: 可以。模块支持同时管理多个 Java 版本,并通过符号链接在它们之间快速切换。
A: 运行以下命令验证:
java -version
javac -version
$env:JAVA_HOMEA: 确保你已经设置了 JAVA_REPOSITORY 环境变量,并重新启动 PowerShell 使其生效。
A: 编辑你的 PowerShell profile:
notepad $PROFILE添加以下行:
Import-Module SwitchJava保存并重启 PowerShell。
- v1.0.0 - 初始版本
- 基础的 Java 版本切换功能
- 支持多供应商管理
- 自动环境变量配置
本项目采用 GPLv3 许可证。详见 LICENSE。
- Fuyuki_Vila
欢迎提交 Issue 和 Pull Request!
灵感来自 Linux 上的 archlinux-java 工具。
最后更新: 2025 年 10 月 24 日