java - 当我尝试使用 WSL2 在 IntelliJ 中运行 HelloWorld 应用程序时出现“AccessDeniedException”
问题描述
尝试按照此处的 jetbrains 说明设置 IntelliJ 以在 win10 上与 wsl2 一起使用
- 通过 ms 商店安装了 ubuntu20.04 并创建了一个默认用户。
- 使用 open jdk 11.0.12 安装 sdkman
- 使用 IntelliJ 在 wsl2 环境下新建一个 HelloWorld java 项目。
当我在 IntelliJ 中构建/运行项目时,出现以下异常:
java.nio.file.AccessDeniedException: /home/paul/.cache/JetBrains/IdeaIC2021.2/compile-server/helloworld_ddb4f9d0/timestamps
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:389)
at java.base/java.nio.file.Files.createDirectory(Files.java:690)
at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:797)
at java.base/java.nio.file.Files.createDirectories(Files.java:783)
at com.intellij.util.io.ResizeableMappedFile.ensureParentDirectoryExists(ResizeableMappedFile.java:175)
at com.intellij.util.io.ResizeableMappedFile.<init>(ResizeableMappedFile.java:67)
at com.intellij.util.io.PersistentBTreeEnumerator.<init>(PersistentBTreeEnumerator.java:73)
at com.intellij.util.io.PersistentEnumerator.createDefaultEnumerator(PersistentEnumerator.java:66)
at com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:135)
at com.intellij.util.io.PersistentMapBuilder.buildImplementation(PersistentMapBuilder.java:64)
at com.intellij.util.io.PersistentMapBuilder.build(PersistentMapBuilder.java:41)
at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:39)
at com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:54)
at org.jetbrains.jps.incremental.storage.AbstractStateStorage.createMap(AbstractStateStorage.java:124)
at org.jetbrains.jps.incremental.storage.AbstractStateStorage.<init>(AbstractStateStorage.java:29)
at org.jetbrains.jps.incremental.storage.FileTimestampStorage.<init>(FileTimestampStorage.java:27)
at org.jetbrains.jps.incremental.storage.ProjectStamps.<init>(ProjectStamps.java:41)
at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:98)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:146)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:218)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
尝试使用 2021.2 和 2021.2.1 的社区版本。
在 wsl2 环境中,IntelliJ 正在创建 root 拥有的项目文件和缓存。这可能相关吗?尽管读/写 src 文件似乎没有任何问题。
也在 youtrack 上提出了它,但我想知道这是否是我的设置问题而不是 IntelliJ 的错误。wsl2 新手
解决方案
查看 youtrack 票的更新。
仍然不确定为什么 IntelliJ 最初以 root 身份创建结构,但删除 .cache 目录并重新启动 IntelliJ 会导致所有文件夹被创建为我的用户为我解决问题。
推荐阅读
- flutter - Flutter GectureDetector onTap 仅适用于文本子项
- javascript - 如何以简单的方式获取当前版本中显示的 yAxis highcharts 的最后一个值?
- html - Bootstrap 导航栏图标未正确对齐
- swiftui - 可以在 SwiftUI 中使 NavigationView 标题可点击吗?
- r - 我如何将我的数据从 ymd 重塑为年?
- c# - 使用 href html 敏捷包解析表
- jfreechart - 如何在 OptaPlanner 的 UI 中调整颜色?
- regex - 长度为 3 个字符且至少一个字母的正则表达式
- java - Java:将 lambdas 存储为值的映射
- python - 提取产品标题中可衡量的指标