Windows 下创建软链接的几种方式

Windows 下创建软链接的几种方式

在 Windows 环境中,软链接(Symbolic Link / Junction) 是实现目录重定向、磁盘迁移、环境隔离(如 JDK、Maven 仓库)的核心技术基础。

下面从 工具支持、命令方式、适用场景、权限要求 等维度,系统介绍 Windows 下常见的几种创建软链接方式。


一、方式一:使用 Junction 工具(Sysinternals)

1.1 适用场景

  • 主要用于 目录级链接

  • 兼容性好,适合老版本 Windows

  • 常用于:

    • .m2/repository 迁移

    • 大目录转移到数据盘

⚠️ 注意:Junction 本质是 NTFS Junction(目录重解析点)

不等同于真正的 Symbolic Link,但在绝大多数场景下表现一致。


1.2 工具下载

官方地址(Microsoft Sysinternals):

https://docs.microsoft.com/zh-cn/sysinternals/downloads/junction

下载后建议解压至:

C:\Windows\System32

以便全局使用。


1.3 创建软链接(需管理员权限)

bash 复制代码
# 创建软链接
junction -s C:\Users\Administrator\.m2\repository D:\repository
junction -s C:\Users\vincent\.m2\repository D:\repository

含义说明:

junction -s <链接路径> <真实目录>


1.4 删除软链接(不会影响真实目录)

bash 复制代码
junction -d C:\Users\Administrator\.m2\repository

1.5 特点总结

维度 说明
链接类型 Junction(目录)
是否需要管理员
是否支持文件
稳定性 ⭐⭐⭐⭐
推荐指数 ⭐⭐⭐⭐

二、方式二:PowerShell 创建 SymbolicLink(官方推荐)

2.1 适用场景

  • Windows 10 / 11 推荐方式

  • 支持 文件 & 目录

  • 语义清晰,脚本友好


2.2 创建软链接(需管理员权限,或开启开发者模式)

bash 复制代码
# 创建 JDK 软链接 
New-Item -ItemType SymbolicLink -Path "D:\jdk\default" -Target "D:\jdk\jdk1.8.0_471" -Force 
New-Item -ItemType SymbolicLink -Path "D:\jdk\default" -Target "D:\jdk\jdk-17.0.17" -Force

2.3 删除软链接

(Get-Item "D:\jdk\default").Delete()

⚠️ 该命令只会删除链接本身,不会删除目标目录。


2.4 特点总结

维度 说明
链接类型 SymbolicLink
是否需要管理员 是(或开发者模式)
是否支持文件
可读性 ⭐⭐⭐⭐⭐
推荐指数 ⭐⭐⭐⭐⭐

3.1 适用场景

  • 纯 CMD / 批处理环境

  • 对 Windows 原生命令依赖最小


3.2 创建目录软链接(需管理员权限)

bash 复制代码
# 建立 D:\jdk\default → D:\jdk\jdk1.8.0_471 
mklink /d D:\jdk\default D:\jdk\jdk1.8.0_471

参数说明:

/d 创建目录符号链接


3.3 删除软链接(重要!)

rmdir D:\jdk\default

⚠️ 严禁使用 del
del 会删除目标目录中的真实文件。


3.4 特点总结

维度 说明
链接类型 SymbolicLink
是否需要管理员
是否支持文件
易用性 ⭐⭐⭐
推荐指数 ⭐⭐⭐⭐

四、方式四:Git Bash + MSYS 环境变量(强烈推荐)

4.1 适用场景

  • Git Bash / zsh / bash 用户

  • 需要 Linux 风格脚本

  • JDK / Node / Maven / 多环境切换


4.2 配置软链接支持(一次性)

echo 'export MSYS="winsymlinks:nativestrict"' >> ~/.bashrc

或(zsh):

echo 'export MSYS="winsymlinks:nativestrict"' >> ~/.zshrc

生效配置:

source ~/.bashrc # 或 source ~/.zshrc


4.3 创建软链接(无需管理员权限,需开发者模式)

ln -s /d/jdk/jdk1.8.0_461 /d/jdk/default

删除:

rm /d/jdk/default


4.4 特点总结

维度 说明
链接类型 原生 SymbolicLink
是否需要管理员 否(开发者模式)
是否支持文件
自动化能力 ⭐⭐⭐⭐⭐
推荐指数 ⭐⭐⭐⭐⭐

五、方式五:封装 alias,实现"一键切换"(进阶)

在 Git Bash / zsh 环境中,可将软链接操作封装为 alias,实现环境秒切。

5.1 jdk多环境切换alias示例

shell 复制代码
# 允许 Git Bash 创建原生 Windows 软链接
export MSYS="winsymlinks:nativestrict"
# 默认软链接入口
export JDK_DEFAULT="/d/jdk/default"

# JDK 路径
export JDK8_PATH="/d/jdk/jdk1.8.0_471"
export JDK17_PATH="/d/jdk/jdk-17.0.17"
export JDK21_PATH="/d/jdk/jdk-21.0.9"
export JDK25_PATH="/d/jdk/jdk-25.0.1"

# 切换命令封装(在Git Bash执行)
alias jdk8="rm $JDK_DEFAULT && ln -s $JDK8_PATH $JDK_DEFAULT && java -version"
alias jdk17="rm $JDK_DEFAULT && ln -s $JDK17_PATH $JDK_DEFAULT && java -version"
alias jdk21="rm $JDK_DEFAULT && ln -s $JDK21_PATH $JDK_DEFAULT && java -version"
alias jdk25="rm $JDK_DEFAULT && ln -s $JDK25_PATH $JDK_DEFAULT && java -version"

默认情况下,Windows 创建软链接需要管理员权限。

开启 开发者模式 后,可避免每次都"以管理员身份运行"。

  1. Win + I → 打开 设置

  2. 系统 → 开发者选项

  3. 打开 开发者模式(Developer Mode)

开启后,普通权限下的 Git Bash 也可正常执行 ln -s


六、几种方式的选型建议

场景 推荐方式
Maven 仓库迁移 Junction / PowerShell
JDK 多版本切换 Git Bash + alias
纯 Windows 批处理 mklink
自动化脚本 PowerShell / Bash
团队长期方案 Git Bash + SymbolicLink

七、总结

  • 软链接是 Windows 开发效率的隐藏神器

  • 一旦理解并掌握:

    • JDK / Node / Maven / Docker 目录迁移

    • 多版本共存

    • 环境隔离

  • 都可以做到 零侵入、可回滚、可自动化

在 Windows 上,
真正的工程化环境管理,一定绕不开软链接。

相关推荐
海天一色y4 小时前
普利姆算法(Prim)和克鲁斯卡尔算法(Kruskal)
windows·算法
愈努力俞幸运8 小时前
windows 安装 docker
windows·docker·容器
徐赛俊8 小时前
iPhone 连接 Windows 热点“已连接但无网络”问题
网络·windows·iphone
水饺编程9 小时前
Windows 编程基础:窗口坐标系
c语言·c++·windows·visual studio
Java开发追求者11 小时前
windows安装Claude Code完整教程
windows·claude code·安装claude code·完整教程·openai codex
pridelizihao11 小时前
CodeX的乱码问题
windows
游戏开发爱好者812 小时前
在 Windows、Linux 与 CI 环境下命令行上传 IPA 到 App Store
linux·windows·ios·ci/cd·小程序·uni-app·iphone
A懿轩A13 小时前
【2026 最新】Python 与 PyCharm 详细下载安装教程 带图展示(Windows 版)
windows·python·pycharm
Clarice__13 小时前
Anaconda安装、使用教程
windows·python·机器学习·conda·visual studio code