WSL
WSL (WSL 2 )——Windows Subsystem for Linux——是一个兼容层,用于在 Windows 10 及更高版本上本地运行 Linux 二进制可执行文件。 目前,它支持若干 Linux 发行版 ,例如 Ubuntu、OpenSUSE 和 SLES。
IntelliJ IDEA 允许您在 WSL 文件系统中创建和打开项目,并在 WSL 环境中运行和调试应用程序。 您还可以使用基于 Windows 的本地项目,并使用 run targets功能在 WSL 中远程运行应用程序。
配置 WSL
从 Microsoft Store 下载并安装一个 WSL 发行版(例如,Ubuntu)。
此步骤请务必使用至少 Windows 10 或更高版本,并安装最新的“秋季创作者更新”(最低版本 1709,构建 16299.15)。 请参阅官方指南 Install the Windows Subsystem for Linux了解详细说明。
要使用 WSL 2 ,您的 Windows 版本应为 10 版本 18917 或更高版本。 请遵循 这些指示来切换分布式。
请注意,IntelliJ IDEA 不支持 旧版 WSL ,而您可能在将系统升级到 Windows 10 build 16299.15 或更高版本之前安装过。 在这种情况下,您需要更新您的 WSL 发行版。
运行 Linux 发行版。
首次启动时,系统可能会提示您启用 Windows 可选功能。 在这种情况下,您需要执行以下操作:
以管理员身份打开 Windows PowerShell 并运行
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux重新启动您的计算机。
您可以创建一个项目并将其存储在 WSL 环境中,从 WSL 文件系统中打开一个项目,并在 WSL 中进一步开发您的项目。
在 WSL 文件系统中创建一个新项目
使用您喜欢的 SDK 管理器将所需的 JDK 安装到 WSL 环境中。
在欢迎屏幕上,点击 新建项目。
在打开的页面中,选择您想要创建的项目类型,并从右侧选项中选择一个项目 SDK(配置在 WSL 中的 JDK)。

点击 创建。
IntelliJ IDEA 创建一个位于 WSL 的项目,您可以在不离开 IDE 的情况下在 WSL 环境中开发和构建您的项目。
在 WSL 文件系统中打开项目
在 IntelliJ IDEA,您可以直接打开存储在 WSL 文件系统中的项目,并像处理其他项目一样进行操作。
请点击 打开 在 欢迎屏幕或从主菜单中选择 。
在打开的对话框中,选择 WSL 文件系统中包含要打开项目的文件夹,或手动输入 \\wsl.localhost 项目位置的路径。

当您 运行项目中的代码时,它是在 WSL 中运行的。 如果您打开运行配置,请注意 IntelliJ IDEA 指的是 WSL 作为本地机器。

代码执行结果显示在 运行 工具窗口中。
在 WSL 中配置终端
在 WSL 配置中运行 终端 ,打开项目 设置/偏好 (Ctrl+Alt+S )并前往 。
请在 Shell 路径(S) 字段中指定命令:
wsl.exe使用默认的 Linux 发行版wsl.exe -d <distribution name>使用特定的 Linux 发行版
点击 OK 以保存更改。
切换到 终端 工具窗口,然后输入任意命令以检查输出。
使用 WSL 在 Windows 文件系统中运行项目
您可以在 Windows 操作系统上使用本地 JDK 创建或 打开您的项目,然后使用 run targets 在 WSL 中运行已编译的代码。 这可能对 跨平台开发 有帮助。
为 WSL 创建运行配置
在主菜单中,点击 。或者,按 Alt+Shift+F10 ,然后 0。
选择其中一种 支持的运行/调试配置类型。
在 运行于 菜单的 新目标 部分中,选择 WSL 以添加一个 WSL 目标。
当您添加 WSL 目标时,IntelliJ IDEA 会进行内省,并自动添加 WSL 中远程 JDK 的路径以及 新目标:WSL 对话框中的 JDK 版本。

如果您需要向现有的 WSL target 添加其他信息,请点击 管理目标… ,然后在 Run Targets 对话框中添加所需的信息。 例如,您可以选择 Maven 或 Gradle 作为运行时。 点击 OK 保存更改。

在主菜单中,转到 运行 并选择所需的运行配置,或按下(Shift+F10 )运行您的代码,并在 运行 工具窗口中查看输出。
防火墙配置
您需要执行以下步骤以确保项目构建正常运行。
配置防火墙设置
以管理员身份运行 Windows PowerShell。

执行以下命令以允许使用 WSL 进行连接:
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow然后执行命令以更新防火墙规则:
Get-NetFirewallProfile -Name Public | Get-NetFirewallRule | where DisplayName -ILike "IntelliJ IDEA*" | Disable-NetFirewallRule现在 start the debugger session。 当 Windows 防火墙 弹出窗口出现时,选择 公共网络 复选框。
