> ## Documentation Index
> Fetch the complete documentation index at: https://openidea.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据目录与日志

> OpenIDEA 把设置、用户数据、缓存、下载的工具和日志放在哪里，以及如何把可重建的数据移到其他磁盘。

OpenIDEA 的应用 id 是 `ai.l0ng.openidea`，下面所有目录都以它命名。

## 目录位置

| | macOS | Windows | Linux |
| - | - | - | - |
| 配置 | `~/Library/Application Support/ai.l0ng.openidea` | `%APPDATA%\ai.l0ng.openidea` | `~/.config/ai.l0ng.openidea` |
| 用户数据 | `~/Library/Application Support/ai.l0ng.openidea` | `%APPDATA%\ai.l0ng.openidea` | `~/.local/share/ai.l0ng.openidea` |
| 本地数据（可重建） | `~/Library/Application Support/ai.l0ng.openidea` | `%LOCALAPPDATA%\ai.l0ng.openidea` | `~/.local/share/ai.l0ng.openidea` |
| 日志 | `~/Library/Logs/ai.l0ng.openidea` | `%LOCALAPPDATA%\ai.l0ng.openidea\logs` | `~/.local/share/ai.l0ng.openidea/logs` |

在 macOS 和 Linux 上，其中几项是同一个文件夹。**关于 OpenIDEA** 对话框会显示配置目录，并提供 **打开配置目录**。

### 配置

* `settings.toml`：全局设置，参见[设置项](https://openidea.sh/zh/reference/settings.md)。
* `recent.json`、`recent-groups.json`：最近打开的项目及其分组。
* `languages/`：你添加或覆盖的语言定义。

### 用户数据

* `plugins/`：已安装的插件。
* `scratches/`：临时文件。
* `history/`：所有项目的本地历史记录。
* `project-trust.json`：受信任的项目和位置。

### 本地数据

这里的内容都可以重新下载或重建，所以在 OpenIDEA 关闭时删除是安全的：

* `tools/`：OpenIDEA 安装的语言服务器、调试适配器、格式化工具和 JDK。
* `language-server-runtimes/`：运行语言服务器所用的运行时。
* `index/`：每个项目的符号索引。
* `cache/`：构建工具（Maven、Gradle）的同步结果和其他缓存。
* `lsp/`：语言服务器的工作区，例如 Java 服务器的导入数据。
* `notebook-runtime/`、`server/`：Notebook 运行时和远程开发服务器的下载。
* `agents/tools/`、`agents/registry.json`：智能体工具和智能体注册表。

想在 IDE 内清理缓存，使用 **文件 › 清除缓存…**。符号索引和语法缓存总会重建；还可以勾选 **清除文件系统缓存和本地历史记录**、**清除语言服务器工作区（Java 导入数据和索引）** 和 **清除构建工具缓存（Maven / Gradle 同步结果）**。选择 **清除并重启** 后，这些缓存会在下次启动、打开任何项目之前删除。

## 项目文件夹

每个项目在根目录的 `.openidea/` 中保存自己的文件：

* `settings.toml`：选中 **此项目** 时保存的设置。
* `run.toml`：作为项目文件保存的运行配置，适合提交到版本库。
* `run.local.toml`：只给自己用的运行配置，OpenIDEA 会把它加入 `.openidea/.gitignore`。
* `workspace.json`：工作区包含的项目。

## 移动本地数据

本地数据可能很大（JDK、语言服务器、索引）。想把它放到其他磁盘，在启动 OpenIDEA 前把 `OPENIDEA_LOCAL_DATA_DIR` 设为一个绝对路径。IDE 随后会使用 `<OPENIDEA_LOCAL_DATA_DIR>/ai.l0ng.openidea`，不存在时自动创建。

在 Windows 上，例如：

```bat theme={null}
setx OPENIDEA_LOCAL_DATA_DIR "E:\OpenIDEA"
```

在 macOS 和 Linux 上，需要在启动 OpenIDEA 的环境中设置这个变量。

* 如果路径是相对路径或不可写，OpenIDEA 会显示错误并退出，而不会退回默认位置。
* 配置、用户数据和日志的位置不变。即使变量设置有误，日志仍会写入，方便排查原因。
* 已有数据不会自动迁移。可以让 OpenIDEA 重新下载和重建；也可以先退出 OpenIDEA，只移动 `tools/`、`language-server-runtimes/`、`index/`、`cache/`、`lsp/`、`notebook-runtime/`、`server/`、`logs/`、`agents/tools/`、`agents/registry.json` 以及顶层的 `java-usages-*.jar` / `java-usages-*.tmp` 文件，并保持相对路径不变。其他内容请留在原处。

## 日志

OpenIDEA 每天写一个日志文件 `openidea.<日期>.log`，保留最近 7 个。程序崩溃（panic）的信息也会写入当前日志。

* 用 **帮助 › 在访达中显示日志**（macOS）、**帮助 › 在资源管理器中显示日志**（Windows）或 **帮助 › 在文件管理器中显示日志**（Linux）打开日志目录。**关于 OpenIDEA** 对话框中也有同样的链接。
* 需要更详细的日志时，启动 OpenIDEA 前设置环境变量 `RUST_LOG`，例如 `RUST_LOG=debug`。默认级别为 `info`，应用自身输出 debug 级别日志。

[报告问题](https://openidea.sh/zh/reference/troubleshooting.md)时请附上日志。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.