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 上,
真正的工程化环境管理,一定绕不开软链接。

相关推荐
开开心心就好1 小时前
仅168KB的桌面图标自动隐藏工具
windows·计算机视觉·计算机外设·excel·启发式算法·宽度优先·csdn开发云
怪兽软家5 小时前
DaVinci Resolve/达芬奇 20安装教程及下载
windows·经验分享·生活
chao1898445 小时前
完整MES系统实现 (C# 客户端服务器)
服务器·windows·c#
Hello_Embed6 小时前
Windows 安装 Claude Code 并接入 模型
windows·笔记·ai编程
Muyuan19986 小时前
28.Paper RAG Agent 开发记录:修复 LLM Rerank 的解析、Fallback 与可验证性
linux·人工智能·windows·python·django·fastapi
AxureMost8 小时前
4DDiG DLL Fixe 1.0.8.2 系统DLL修复工具
windows
怣疯knight9 小时前
Windows不安装 Android Studio如何打包安卓软件
android·windows·android studio
空中海10 小时前
02. 静态逆向、Manifest 分析与 Smali 重打包
服务器·网络·windows
一拳一个娘娘腔10 小时前
告别图形化界面:基于CLI的Windows系统入侵排查与防御实战手册
windows·安全
疋瓞11 小时前
批处理_基础补充、文件和文件夹处理_02
windows