网上冲浪的时候看到说最新的 idea 支持 wsl2 的开发环境,于是装了个最新版,把 wsl1 升到了 wsl2,然后 wsl 里面已经有 java 和 maven 环境了,然后我按网上的建议,把项目代码迁到 wsl 里面开发,发现 idea 非常的卡(开项目建索引),点一下鼠标都卡好几下的样子。我试了把代码和环境变量在 wsl 和 windows 来回迁,都有问题:
( 1 )开发环境、代码都在 wsl2 里面:idea 非常卡,根本没法正常使用。(怀疑跟 wsl2 比较拉的 IO 有关)而且不显示项目目录,只有一个 pom.xml 。我把.idea 缓存删掉之后重开,idea 直接闪退,再开的话就还是没有项目目录。。。。 ( 2 )开发环境在 wsl2,代码在 windows:idea 根本检测不到 wsl2 里面的 java 环境,一直显示 no sdk,手动指定也没用。 ( 3 )开发环境、代码都在 windows (我装 wsl2 干嘛?):wsl2 识别不了 windows 的 java.exe 环境,linux 应该是要二进制的 java 。而且这样就背离了装 wsl2 的初衷。
是不是我哪里没装对啊?
1
liuhuansir 2021-09-10 09:56:03 +08:00
同样的情况,已经放弃了,写写 demo 倒是可以,啥时候 idea 有 vscode 的 remote 体验,真就完美了
|
2
pota 2021-09-10 09:56:21 +08:00
windows 和 wsl 内部 IO 特别慢,你把 idea 装到 wsl2 里面
|
3
hingbong 2021-09-10 09:56:30 +08:00
io 拉跨只跟 Windows 跨 Linux 有关系吧
我是 idea,代码全在 wsl2 下跑的,界面在 Windows 用 projector-client projector-server 现在只支持 2020.3 |
4
Macolor21 2021-09-10 09:56:42 +08:00
pom 的问题,右键 pom.xml 如果能弹出 Open As Maven Project,说明没有识别成 Maven 项目,点这个就好。
|
5
azur 2021-09-10 09:58:13 +08:00
mark,同迷惑,求一个 wsl2 使用的最佳实践
|
7
liuzh365 OP 我电脑是 i71165g7+16g+固态,这个配置不可能卡的。。idea 卡的时候,cpu 内存硬盘空闲都还很多
|
8
statumer 2021-09-10 10:15:36 +08:00 via Android
何必用 WSL2 ? WSL2 就是个虚拟机,你自己开虚拟机和用 WSL2 体验是一样的。
|
9
liuzh365 OP @statumer 要不是 windows 的命令行不好用。。wsl 既然存在,说明有他的用处啊
|
10
lingxi27 2021-09-10 10:20:59 +08:00
用过 wsl,体验比 linux 桌面差远了,何必折腾自己
|
11
shilianmlxg 2021-09-10 10:22:23 +08:00
@lingxi27 大佬 ,有什么 windows 好用的命令行,现在用的 cmder 。
|
13
Macolor21 2021-09-10 10:29:12 +08:00 1
@liuzh365
建议开虚拟机使用,你也可以用 Docker 开发,没必要环境全在 Linux 下。 我现在是这样开发,开发环境,写代码是本地。DEBUG,运行环境是 Docker 的 JDK 环境(底层是镜像是 openjdk,系统是精简的 Ubuntu )使用起来其实和 Linux 没太多。这样你代码还是在本地,只不过所有运行环境都在 Linux 。 如本地的 mysql,redis 等数据库和中间件,我写了个 Docker-Compose,然后 IDEA 运行的 Docker 容器指定 network 。 开发代码放在虚拟机,这种思路对我来说很怪。 我这一套思路是开发代码在本地,运行时,或者 Debug 时,编译然后放到容器去执行,这种更类似于生产环境把。 PS: 我用的是 Ubuntu 桌面,但是 Docker 和操作系统没太大关系,你程序编译后还是运行在 Linux 下。使用起来和本地运行程序没区别。 可以看下 2021.1 的 Feature,Run On Docker (好像是) |
14
Macolor21 2021-09-10 10:31:07 +08:00
@liuzh365
还有一个,你觉得命令行不好用,需要使用其他命令(不太清除你这里有什么场景需要用到这个) 如果是在 Java 程序的环境中执行,直接用 docker 的 exec 如果是本地的,暂时不知道,我用 Linux |
15
ysn2233 2021-09-10 10:32:57 +08:00
建议 idea 装进 wsl2 用 xserver 转发用,除了输中文麻烦其他体验都不错。
|
16
clf 2021-09-10 10:38:30 +08:00
我是 IDEA 在 windows 下编程,然后运行的时候连接 wsl2 在上面跑。
|
17
forbreak 2021-09-10 10:41:41 +08:00
我已经弃了,我这边配置起来虽然不卡,但是狂吃内存,wsl2 占 4 、5G windows 下 idea 在占 4 、5G 玩个卵子。内存直接飙到 90%多 。wsl2 还是 vscode 的体验好。idea 一堆问题,svn 不能用,gradle 有问题,安卓有问题。什么启动到 wsl2 里面也是问题多多。 总之就是没法用。。。
|
18
xiaoxuxu 2021-09-10 10:52:57 +08:00
idea 对 wsl2 的支持应该只是 IO 层去访问 wsl2,idea 自身还是运行在 win 里,所以 IO 会非常慢。可以买个 x410 然后 idea 直接装 wsl2 里,速度还是很快的,就是界面有些小 bug,整体还算可用
|
19
yEhwG10ZJa83067x 2021-09-10 10:58:19 +08:00
目前看来还是 vagrant+virtualbox 最合适
|
20
lingxi27 2021-09-10 11:08:00 +08:00
@shilianmlxg 一般不用 windows,实在要用 gitbash 凑合能用
|
21
6IbA2bj5ip3tK49j 2021-09-10 11:11:17 +08:00 3
这属于上了某些软吹的当。
吹 WSL1 速度快,API 是 Clean Room 实现的,多牛逼,但是不提 API 兼容的复杂度,最后复杂到直接砍了。 吹 WSL2 兼容好,但是不提 IO 速度一坨屎。 还有一个 Windows Terminal,建议楼主去学习体验下,就能彻底放弃对 Windows 的幻想了。 |
22
Saxton 2021-09-10 11:24:14 +08:00
我也遇到了,我更新到了最新的 idea,只要一打开 pom.xml 秒卡死,我本来想开 JVM 调试工具的,结果连调试工具跟着一起卡死,最后放弃了
|
23
EIJAM 2021-09-10 12:05:23 +08:00 via iPhone
不稀奇,wsl 就是个缝合怪胎,什么幺蛾子都会有
|
24
ClutchBear 2021-09-10 12:12:15 +08:00
Version: 2021.2.1
Build: 212.5080.55 24 August 2021 刚刚看到最新版本是这个啊. |
25
mmdsun 2021-09-10 12:47:26 +08:00 via Android
用 vscode remote + WSL2 流畅的飞起。
你使用姿势不对,去看 visual studio code 文档和 WSL 2 文档。 |
27
zxCoder 2021-09-10 12:53:54 +08:00 via Android
jetbrain 好像很多 ide 还没有跟 wsl2 完美结合
|
29
ch2 2021-09-10 12:55:24 +08:00
你需要把 goland 装在 wsl2 里,然后再用 x11 转发 gui 到 windows 上
|
31
Macolor21 2021-09-10 13:07:36 +08:00
@zxCoder
Windows 的 Docker 不是基于 WSL2 或 Hyper-V 么?我只知道部分机器安装可能麻烦些,实际用起来 Docker 应该比 WSL2 舒服把?(虽然我没用过 WSL2 ) |
32
liuzh365 OP @ClutchBear 打错了,是 2.1
|
34
ikas 2021-09-10 13:12:46 +08:00
wsl2 io 提升是指 wsl2 内部操作 io 的提升
当前阶段,你要么把 idea 也装到 wsl2 中..然后通过 wsgl 直接显示,要么通过远程,不管是 idea 远程过来或者只是远程部署与编译.... 说真的..当你的工作真的需要 linux 才能完成时,那才需要用 wsl2.比如我做安卓,需要编译下安卓,那么直接 wsl2 编译就很方便. aosp 源码直接在本地 ext4 分区.然后挂载到 wsl2 |
35
BeautifulSoap 2021-09-10 13:19:58 +08:00 6
ls 那么多人也真是的。。。虽说 wsl2 的确很多问题,但你们基本都是一个劲只会黑,也不给 lz 提供切实有效的解决方案。。。。。。
作为用 wsl2 主力开发一年多没多少屁事的,我给 lz 个建议,lz 你直接把 idea 装 wsl2 里,所有开发环境也放到 wsl2 里,界面通过 x server 传到 win10,让你获得丝滑开发体验。这样的开发方针至今没出过什么幺蛾子(除了输入法麻烦了点) 微软自己就出过怎么做的教程,总体来说可以说是极其简单 https://techcommunity.microsoft.com/t5/windows-dev-appconsult/running-wsl-gui-apps-on-windows-10/ba-p/1493242 也许有人会说你都完全塞 wsl2 了干嘛不用单独虚拟机,答案很简单,虚拟机能像 wsl2 这么轻量,文件操作方面和系统集成这么好,像 wsl2 这样多个虚拟机共用同一块内存,像 wsl2 这样 windows 和 linux 共用同一个 docker 的话,我也乐的迁移虚拟机 |
36
leeyuzhe 2021-09-10 13:47:40 +08:00
所以我用 wslg,虽然也有一些 bug,但是最起码能用,windows 下面的 idea+wls2 基本不能用,全是问题
@xgfan Windows Terminal 挺好用啊,有什么问题? |
37
6IbA2bj5ip3tK49j 2021-09-10 14:31:12 +08:00
|
38
u823tg 2021-09-10 16:39:43 +08:00
还好吧,没遇到啥大问题。 不过 java 这种没必要环境要 wsl 吧。
|
39
zeni123 2021-09-10 17:53:07 +08:00
java 就不需要 WSL 了吧。shared folder 好了。 代码也不用共享了,共享 artifacts 好了。
|
40
Zien 2021-09-10 18:14:43 +08:00 via iPhone
Java 没试过 和你一样的操作 C 没问题
|
41
mawerss1 2021-09-10 18:16:21 +08:00 1
idea 装在 wsl2 里,用 x410 做客户端显示 gui,丝般顺滑,值得拥有
|
42
yhrzpm 2021-09-10 18:31:44 +08:00
wsl2 底层是个虚拟机吧
|
43
kingfalse 2021-09-10 18:35:08 +08:00 via Android
Windows 就老老实实放 Windows 跑吧,wsl 到现在依旧是个玩具
|
44
everyx 2021-09-10 19:43:29 +08:00
已放弃 wsl2,开几个 docker container 就卡的不要不要的,换到 archlinux,风扇不叫了,干啥流畅了 😂
|
45
Trim21 2021-09-10 19:52:07 +08:00 via Android
@xgfan 配置项不够多之类的还能算缺点,但是这歌帖子里说的这个性能差的问题不跑 benchmark 的话很难感觉的出来…
|
46
OhYee 2021-09-10 20:00:49 +08:00
@azur
WSL2 + VSCode 体验挺不错的,开发体验起码不亚于 Mac 或 Linux 直接 VSCode (具体要和 IDE 比的话,就得看什么语言了,大部分应该 VSCode 都没啥大问题) |
47
Dragonphy 2021-09-10 21:00:23 +08:00
jetbrains 就别硬搞 WSL 了,不合适,压根不合适,WSL+VS Code 才是大杀器,jetbrains+WSL 配合起来就像弱智,webstorm 在 wsl 上体验都不好。
|
48
UnitTest 2021-09-10 21:06:10 +08:00
@BeautifulSoap 非常感谢你的分享, 我来得瑟一下, 前端用 wsl 开发比后端简单多了,
前端无非就是索引一下 node_modules 文件, 启动调用 wsl 的 node 就行. 我没尝试 java 开发, 我试了一阵 go 开发直接放弃了, 还是基于 windows 开发 go, 有了你这个帖子, 我感觉我重新燃起了希望... |
49
zzhzero 2021-09-11 00:05:18 +08:00
@Macolor21 Docker 和宿主机还是有关系的 如果你用的是非 Linux 系统,Docker 也是跑在 VM 上,本质和 wsl2 相同。
|
50
charlie21 2021-09-11 00:29:36 +08:00
@yhrzpm #42 理论上开了之后 win 都是一个虚拟机
Hyper-V 安装在 win 上之后,此 win 就成了 Hyper-V 上的有一个虚拟机。除了 win 系统本身可以管理 Hyper-V 之外,win 和 Hyper-V 上的其他虚拟机没有本质区别 v2ex.com/t/564215?p=1#r_7327114 |
51
yhrzpm 2021-09-11 03:26:27 +08:00
@charlie21 是这样没错。wsl 我记得是 1:1 翻译 api,运行效率会好一些。wsl2 就是纯 hyperv 虚机
|
53
changwei 2021-09-11 04:13:15 +08:00
wsl2 的 io 效率似乎也很差,如果有用过 webstorm 在 wsl2 里面起一个 nodejs+webpack 的前端项目就能看出差距了,启动时间差不多 wsl2 要慢一倍左右
|
54
ladypxy 2021-09-11 06:54:28 +08:00 via iPhone
jetbrains 的锅比较大。最新版在我 linux 下都卡到爆,保存文件会直接界面卡死 60 秒,看 log 里面各种 storage timeout……不知道最新版用了什么 api..
|
55
PatrickDingDing 2021-09-11 08:14:20 +08:00
@Trim21 我日常用感觉挺省心也挺方便的,真没觉得有啥卡顿的。
|
57
ebony0319 2021-09-11 09:42:14 +08:00
mac->ssh 到 windows wls2 .感觉挺丝滑的,
|
58
DandelionFlowers 2021-09-11 09:57:41 +08:00
请问用的是 oh-my-zsh 吗? 我换到 bash 在某些场景下会好一些.
https://github.com/spencerwooo/dowww/issues/17#issuecomment-457128479 |
59
Jface 2021-09-11 10:05:13 +08:00
一直不会使用 wsl,有没有同学来给指南看看的。
|
60
hingbong 2021-09-11 10:29:54 +08:00 via Android
不知道 ide 装到 wsl 有什么问题,https://github.com/JetBrains/projector-installer 也有 wsl 下的指引
|
61
ztaosony 2021-09-11 10:44:48 +08:00
这里一般这种时候先喷微软再说,没人解决问题
|
63
GrayXu 2021-09-11 14:46:01 +08:00
wsl2 的 IO 慢指的是和 windows 下 FS 交互的 IO 慢。建议全部迁移到 wsl2 下。
|
64
xianzhe 2021-09-11 18:19:40 +08:00 via Android
idea 自己问题,之前没这毛病,yourtrack 上已经一堆 issue 了。我现在拿 vscode 暂时顶上,之前 jetbrains 声称 2021.2.1 已经修复,并关闭了一些 issue,但是实际上没啥用
|
65
xianzhe 2021-09-11 18:21:38 +08:00 via Android
查看 idea 日子你会发现一大堆 thread dump,貌似文件读写有问题
|
66
xianzhe 2021-09-11 18:23:16 +08:00 via Android
重启 wsl 可能会改善
|
68
fannas 2021-09-11 19:43:07 +08:00 via iPhone
问个问题,java 是在 jvm 运行的程式,纯粹的源码在哪里运行差别会有很大吗
|
71
whee 2022-10-13 00:47:41 +08:00
22 年底尝试 wsl2 ,跑了一天多,目前看除了新加载项目的时候会比较卡,其他时候可用了
环境-win10+ wsl2 |
72
whee 2022-10-13 00:48:38 +08:00 1
补充一下安装方案,环境和代码都在 wsl2 里面,idea/goland 放在 win ,前面有朋友说 webstorm,回来我再试试
|
73
whee 2022-10-18 18:16:53 +08:00
回来继续补充,经过几天的尝试,总的来说,jet 家的 ide 用起来还是比较吃劲,会有卡顿,io 还是不行,表现为打开 /编辑文件时的卡顿。
继续尝试一下 vscode |
75
yannxia 188 天前
2024 年尝试,环境和代码都在 wsl2 里面,idea/goland 放在 win ,依旧卡顿,gateway 常出现无法连接的问题
|
76
31VDVx0175zKNs91 184 天前
@yannxia 你好请问你是直接打开 wsl2 的项目还是通过 gateway 打开?我关闭了防火墙和 win 自带的杀毒,但是用 idea 运行 wsl2 的 spring boot 项目的时候 service 不会显示端口号。你有这个问题吗?我用 vscode 就一切正常
|