跳转到主要内容

查找日志

帮助 › 在访达中显示日志(macOS)、帮助 › 在资源管理器中显示日志(Windows)或 帮助 › 在文件管理器中显示日志(Linux)会打开日志目录并选中当前日志。日志文件名为 openidea.<日期>.log。日志位置以及如何用 RUST_LOG 输出更详细的日志,参见数据目录与日志。

什么都运行不了,也没有代码洞察

如果窗口顶部显示 受限模式:项目命令和工具已禁用。,说明项目尚未被信任。受限模式下,语言服务器、构建、运行配置等项目命令都不会启动,依赖它们的操作会提示“项目处于受限模式。信任项目后可启用执行功能。” 确认来源可信后,点击横幅中的 信任项目。要查看或撤销信任,打开 设置 › 安全 › 项目信任。受信任的位置 中的文件夹,其下所有项目都会直接被信任。

某种语言没有代码洞察

  • 语言服务器没有安装。 OpenIDEA 会弹出类似“rust-analyzer 未安装”的通知,并提供 安装 和 语言服务器… 按钮。可以直接安装,也可以打开 设置 › 语言和框架 › 语言服务器 安装服务器、指定自己安装的服务器,或查看 OpenIDEA 找到了哪些。
  • 项目仍在建立索引。 等待状态栏中的 正在编制索引 任务完成。
  • 省电模式已开启。 编辑器上方会显示“省电模式已开启:补全和文档弹出窗口以及用法高亮显示已关闭。”点击 关闭,或切换 文件 › 省电模式。
各语言需要什么,参见语言支持总览。

Java 语言服务器占用大量内存

Java 语言服务器(jdtls)会分析它导入的每个模块,所以大型 Maven 或 Gradle 构建需要较多内存。它默认以 -Xmx2G 运行。
  • 调整内存上限。 在 设置 › 语言和框架 › Java 的 语言服务器 部分设置 JVM 选项,例如 -Xmx4g。这里设置的选项会替换同名的默认选项。
  • 少导入一些模块。 在 Maven 工具窗口中右键点击不需要的模块,选择 取消链接 Maven 项目。语言服务器不再导入它们;文件仍保留在项目视图中,重新添加对应的 pom.xml 即可恢复。
  • 共用一个服务器。 同一页面中的 在构建间共享 JDT LS 会让一个项目窗口中已关联的构建共用一个 jdtls 进程。
更多内容参见Java 与 Kotlin。

结果过期或不正确

如果导航、搜索或高亮与文件内容不符,用 文件 › 清除缓存… 并选择 清除并重启 重建缓存。符号索引总会重建。语言服务器保留了旧的项目数据时,再勾选 清除语言服务器工作区(Java 导入数据和索引);构建文件出问题后,可以勾选 清除构建工具缓存(Maven / Gradle 同步结果)。

快捷键没有反应

  1. 打开 设置 › 按键映射,点击 按快捷键查找操作 并按下该快捷键,查看它绑定在哪个操作上。
  2. 如果 OpenIDEA 根本收不到这个按键,说明被其他程序占用了:操作系统(例如 macOS 的 ⌃⌘D),或显卡叠加层之类的应用。修改那个程序的快捷键,或在 OpenIDEA 中换一个快捷键。
  3. 开启 Vim 模式时,编辑器中的按键可能由 Vim 处理。参见Vim 模式。

Windows 安装时出现警告

Windows 安装包目前还没有代码签名,Microsoft Defender SmartScreen 可能提示“未知发布者”。点击 更多信息,再点击 仍要运行。参见安装。

Linux 上窗口一片空白

在使用 NVIDIA 驱动的 Wayland 会话中,WebKitGTK 的 DMA-BUF 渲染器会出错。OpenIDEA 检测到这种组合时会自动设置 WEBKIT_DISABLE_DMABUF_RENDERER=1。如果在其他环境下也出现空白或显示异常的窗口,先退出 OpenIDEA,再在终端中带上这个变量启动,例如:

启动时提示数据目录错误并退出

OPENIDEA_LOCAL_DATA_DIR 被设成了相对路径或不可写的文件夹。修正或删除这个变量即可。参见数据目录与日志。

设置不生效

如果手动编辑的 settings.toml 无法解析,或者某个值类型不对,OpenIDEA 会忽略整个文件,并在日志中写入类似 “has invalid settings, ignoring it” 的警告。修正文件,或改用设置窗口修改(设置窗口写入的 TOML 一定有效)。参见设置项。

下载或更新缓慢、失败

  • 检查 设置 › 外观与行为 › 系统设置 › HTTP 代理。检查连接… 可以用当前代理设置测试某个 URL。
  • 在国内,可以在 设置 › 外观与行为 › 系统设置 › 更新 中把 更新源 设为 CNB(国内镜像)。下载失败或被取消时,通知中会提供改用另一个来源重试的按钮。

报告问题

  1. 在 关于 OpenIDEA 中点击 复制信息,复制版本和平台信息。
  2. 点击 报告问题(或直接前往 GitHub Issues),写明复现步骤。
  3. 附上日志中相关的部分。
也欢迎在 Discord 提问和反馈;README 中还有微信群二维码。