WSL2 - 让 IDEA 的 SpringBoot 应用跑在 Win 的 Linux 子系统中(全流程)

前言

WSL2 是通过在 Windows 上运行一个轻量级的 Linux 虚拟机(包含真正的 Linux 内核),来实现 Ubuntu 等发行版的原生兼容性。

本文将以 Ubuntu 子系统为例。

配置 Ubuntu 子系统

环境配置

开启 CPU 虚拟化

CPU 虚拟化,大部分电脑默认都开启了,可以打开任务管理器,选择性能选项,观察如下,表示已经开启:

如果显示未开启,那么在重启电脑,并在重启电脑时连按 del键(大部分电脑是这个键,也可能是 f2),进入 BIOS 界面,进入 Advanced 板块,找到英特尔 VMX 虚拟化平台,并开启即可。

开启 Windows 功能

1)点击 win 键,搜索 启用或关闭 Windows功能 ,如下

2)勾选 适用于 Linux 的 Windows 子系统Virtual Machine Platform 这两个选项

开始安装

1)以管理员身份打开 cmd,输入 wsl --install,如果是国内网络的话,建议使用 wsl --install --web-download ,回车后开始安装,默认下载 Ubuntu。

下载完成后会提示你输入用户名和密码:

2)当然 wsl 也可以安装其他 Linux 系统,通过输入命令 wsl --list --online 展示出所有可以安装的子系统

例如安装 kali-linux,就可以使用 wsl --install kali-linux --web-download 进行安装。

启动和停止子系统

1)打开终端,输入 wsl --list -v 就可以显示出安装的子系统列表。

Ps:version 为 2,表示通过 wsl2 安装

这里默认使用的 Ubuntu 子系统,如果你想默认子系统为 kali-linux,可以使用命令 wsl --set-default kali-linux

2)可以通过终端下拉列表启动子系统

或者从开始菜单中搜索子系统名称进行启动

3)如果想停止,直接关闭窗口即可

4)此时,还可以通过 win 的终端运行 linux 命令(加上 wsl 这个前缀即可),例如如下:

Windows 查看 Linux 文件

1)打开 此电脑 就可以看到左下角有一个 Linux 图标,如下:

里面就对应着子系统的文件列表。

Ps:如果没有看到这个 Linux 的小图标,说明你的 wsl 版本有点问题,打开终端,输入 wsl --update ,然后重启电脑,即可解决。

子系统备份和导入(可以换盘存储)

子系统默认存储在 c 盘,如果不想占用 c 盘空间,例如换到 d 盘,可以先将子系统备份,然后再导入到 d 盘。

1)输入 wsl --export Ubuntu ubuntu.tar ,即可将 Ubuntu 子系统导出到当前目录下的 ubuntu.tar 文件中(不存在会自动创建)

2)导入语法如下:

bash 复制代码
wsl --import 自定义子系统名称 导入的位置 导出的tar包位置

例如这里我导入到 D:\ubuntu 目录下,那么可以使用命令 wsl --import Ubuntu-24 D:\ubuntu C:\Users\cyk\ubuntu.tar

导入成功后,就可以再 D:\ubuntu 目录下看到 Hyperv 的镜像文件(子系统中的所有文件都存在这个镜像文件中了)

此时在终端输入 wsl --list -v 就可以看到刚刚导入的 Ubuntu24 了

3)输入 wsl --set-default Ubuntu-24 设置为默认子系统为 Ubuntu-24,然后输入 wsl --unregister Ubuntu 即可卸载之前下载到 C 盘的 Ubuntu 子系统

魔法配置

如果win配置的有魔法,那么直接开启 TUN 模式即可

让 Win 中 IDEA 运行的 SpringBoot 应用跑在 Ubuntu 子系统中

场景解释

IDEA 是在 windows 上运行的,但是希望他能将 SpringBoot 项目在 WSL 的 Ubuntu 环境中运行,这样可以利用 Ubuntu 的 Linux 环境,更贴近线上部署环境。

例如我要写一个基于 Ansible 的发布系统,就很难跑在 Win 环境上测试。

Ps:IntelliJ IDEA(2020.3+)已经原生支持在 WSL 中运行项目。

实现步骤

1)确认 WSL 是 WSL2,可以通过 wsl -l -v 查看,如果显示 Ubuntu Running 2,表示就是 WSL2

2)在 Ubuntu 子系统中安装 Java 和 maven 工具,如下:

bash 复制代码
sudo apt update
sudo apt install openjdk-17-jdk maven

检查 java 和 maven 版本(是否安装成功)

3)打开 IDEA 项目,进入 Run/Debug Configurations 配置中,选择运行在 WSL 如下:

随后运行 SpringBoot 项目,可以看到已经跑在了子系统中

访问跑在 Ubuntu 子系统中的 SpringBoot 端点

假设要访问这个端点

1)进入 Ubuntu 子系统,输入如下命令,来确定内网ip

bash 复制代码
hostname -I

2)接着访问 http://172.18.1.112:8080/hello/ 即可

相关推荐
Q_Q19632884758 分钟前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
正在努力的小河2 小时前
Linux设备树简介
linux·运维·服务器
荣光波比3 小时前
Linux(十一)——LVM磁盘配额整理
linux·运维·云计算
LLLLYYYRRRRRTT3 小时前
WordPress (LNMP 架构) 一键部署 Playbook
linux·架构·ansible·mariadb
轻松Ai享生活3 小时前
crash 进程分析流程图
linux
悟纤3 小时前
Spring Boot 实用小技巧:多级缓存(Caffeine + Redis)- 第545篇
spring boot·后端·spring
MrSYJ4 小时前
UserDetailService是在什么环节生效的,为什么自定义之后就能被识别
java·spring boot·后端
大路谈数字化5 小时前
Centos中内存CPU硬盘的查询
linux·运维·centos
luoqice5 小时前
linux下查看 UDP Server 端口的启用情况
linux
Noii.6 小时前
Spring Boot初级概念及自动配置原理
java·spring boot·后端