IntelliJ配合WSL2运行HelloWorld报AccessDeniedException如何解决?
WSL2环境下IntelliJ编译Java项目报AccessDeniedException解决方案
你观察到的IntelliJ创建的项目文件和缓存所有者为root,就是报错的直接原因。编译阶段IDEA需要写入缓存目录/home/paul/.cache/JetBrains/下的时间戳文件,普通用户paul没有root所属目录的写入权限,因此抛出访问拒绝异常。src目录可正常读写是因为该目录权限恰好对普通用户开放,未触发权限校验。
可按以下步骤排查解决:
- 第一步:修正现有文件所有者
在WSL2的Ubuntu终端中执行以下命令,将JetBrains缓存目录和项目目录的所有权修改为你的普通用户:sudo chown -R paul:paul /home/paul/.cache/JetBrains # 替换为你实际的项目存放路径,比如项目放在/home/paul/IdeaProjects就执行下面这条 sudo chown -R paul:paul /home/paul/IdeaProjects - 第二步:修复WSL默认用户配置,避免后续再生成root所属文件
编辑WSL内的/etc/wsl.conf文件,添加默认用户配置:
保存后回到Windows端的命令提示符,执行命令关闭WSL实例:[user] default=paul
重启WSL后,确认默认登录用户为paul,而非root。wsl --shutdown - 第三步:清除IDEA缓存并重启
打开IntelliJ,依次点击菜单栏File -> Invalidate Caches...,勾选所有清除选项,点击Invalidate and Restart,等待IDEA重启后重新构建项目即可。
内容的提问来源于stack exchange,提问作者Paul Beckett
相关产品推荐
相关产品推荐

