OpenCode + Oh-My-OpenCode 配置指南:集成 GitHub Copilot 模型与 Java LSP (jdtls)
前言
最近在研究 AI 辅助编程工具,发现了一套非常强大的组合:OpenCode+Oh-My-OpenCode。它们不仅能调用 GitHub Copilot 等模型,还支持灵活配置各种语言的 LSP(语言服务器),特别是 Java 的 jdtls。本文将详细记录从安装到配置的全过程,包括模型设置、LSP 集成和常见问题处理。
环境准备
操作系统:Windows (本文以 Windows 为例,macOS/Linux 类似)
Node.js:建议 v18 或更高版本(npm 随附)
PowerShell:用于运行安装脚本
GitHub Copilot 订阅(若使用其模型)
一、安装 OpenCode 和 Oh-My-OpenCode
1. 安装 OpenCode
npm i -g opencode-ai安装完成后,可以通过opencode --version检查是否成功。
2. 安装 Oh-My-OpenCode
npm i -g oh-my-opencode然后执行安装命令(会完成一些初始化配置):
npx oh-my-opencode installopencode二、模型配置(使用 GitHub Copilot 模型)
OpenCode + Oh-My-OpenCode 的模型配置通过oh-my-openagent.json文件完成。该文件位于:
C:\Users\你的用户名\.config\opencode\oh-my-openagent.json
如果文件夹不存在,手动创建即可。
1. 完整配置示例
以下是我实际使用的oh-my-openagent.json,包含了多个代理(agent)和类别(category),并统一使用github-copilot/gpt-5.4及其变体,以及一些备用模型(fallback)。
{ "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json", "agents": { "sisyphus": { "model": "github-copilot/gpt-5.4", "variant": "max", "fallback_models": [ { "model": "github-copilot/gpt-5.4", "variant": "max" }, { "model": "github-copilot/gpt-5.4" }, { "model": "github-copilot/gpt-5.4", "variant": "medium" }, { "model": "opencode/big-pickle" } ] }, "hephaestus": { "model": "github-copilot/gpt-5.4", "variant": "medium", "fallback_models": [{ "model": "github-copilot/gpt-5.4", "variant": "medium" }] } // 其他 agent 类似,按需添加 }, "categories": { "quick": { "model": "github-copilot/gpt-5.4-mini", "fallback_models": [ { "model": "github-copilot/gpt-5.4-mini" }, { "model": "github-copilot/claude-haiku-4.5" }, { "model": "github-copilot/gpt-5.4" }, { "model": "opencode/gemini-3-flash" } ] } // 其他 category 类似 } }说明:
variant表示模型能力级别(如 max, high, medium, xhigh)。
fallback_models是当主模型不可用时依次尝试的模型列表。模型名称格式
github-copilot/xxx需要有效的 GitHub Copilot 授权。
三、配置 Java LSP(jdtls)
OpenCode 通过 LSP 提供代码补全、跳转、重构等功能。Java 官方推荐使用jdtls(Eclipse JDT Language Server)。
注意!!!:jdk需要配置全局环境,且版本不低于21
1. 下载并安装 jdtls
提供了一个 PowerShell 脚本installjdtls.ps1,内容如下(保存为.ps1文件):
# install-jdtls.ps1 $installDir = "$env:USERPROFILE\.local\share\opencode\bin" $tempFile = "$installDir\jdtls.tar.gz" New-Item -ItemType Directory -Force -Path $installDir | Out-Null Write-Host "Downloading jdtls..." Invoke-WebRequest -Uri "https://download.eclipse.org/jdtls/milestones/1.57.0/jdt-language-server-1.57.0-202602261110.tar.gz" -OutFile $tempFile Set-Location $installDir Write-Host "Extracting..." tar -xzf jdtls.tar.gz $jdtlsBinDir = "$installDir\bin" $currentPath = [Environment]::GetEnvironmentVariable("Path", "User") if (-not $currentPath.Contains($jdtlsBinDir)) { [Environment]::SetEnvironmentVariable("Path", "$currentPath;$jdtlsBinDir", "User") Write-Host "Added to PATH: $jdtlsBinDir" } Remove-Item $tempFile -Force Write-Host "Verifying installation (expected: usage error or missing args)..." & "$jdtlsBinDir\jdtls.bat" 2>&1 | Select-Object -First 3执行步骤:
将上述脚本保存为
installjdtls.ps1。在文件资源管理器中进入脚本所在目录,地址栏输入
powershell并回车。在 PowerShell 中运行:
.\installjdtls.ps1观察输出。如果出现类似下面的内容,其实是成功的:
Downloading jdtls... Extracting... Added to PATH: C:\Users\Admin\.local\share\opencode\bin\bin Verifying installation... Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 WARNING: Using incubator modules: jdk.incubator.vector
这些警告可以忽略,只要没有报错“找不到命令”之类的即可。
2. 验证 jdtls 是否可用
打开一个全新的 PowerShell 窗口(使得 PATH 生效),运行:
jdtls -help如果输出帮助信息(如Usage: jdtls [-data <workspace>] ...),说明安装成功。
3. 在 oh-my-openagent.json 中注册 jdtls
在 JSON 配置文件的顶层添加lsp字段,内容如下:
"lsp": { "jdtls": { "command": ["jdtls", "--stdio"], "extensions": [".java"], "priority": 10, "env": { "NODE_OPTIONS": "--max-old-space-size=4096" }, "initialization": { "preferences": { "includeInlayParameterNameHints": "all" } } } }将该段合并到你已有的oh-my-openagent.json中(注意 JSON 语法,不要遗漏逗号)。届时打开任何.java文件,OpenCode 就会自动启动 jdtls 提供智能提示。
四、其他 LSP 配置(以 Vue 为例)
如果需要前端开发支持,可以安装 Vue 的语言服务器:
npm install -g @vue/language-server然后在lsp字段中添加相应配置(类似 jdtls)。
五、常见问题与注意事项
1. jdtls 运行报错JAVA_TOOL_OPTIONS或incubator modules
这是正常提示,不影响使用。如果希望去除,可以移除环境变量JAVA_TOOL_OPTIONS或降级 JDK 版本(但建议保留)。
2. PATH 未生效
安装完 jdtls 后要关闭并重新打开终端(或 PowerShell),否则系统找不到jdtls命令。
3. 模型无法调用
确保已登录 GitHub Copilot(可使用
github-copilot auth命令验证)。检查网络环境,部分地区可能需要代理。
4. OpenCode Web 界面不显示 LSP 功能
确认 JSON 配置文件没有语法错误(可用在线 JSON 校验工具)。LSP 功能在打开对应文件(如.java)后才会激活。
六、总结
本文手把手教会了:
安装 OpenCode 和 Oh-My-OpenCode
配置 GitHub Copilot 模型(通过
oh-my-openagent.json)安装并配置 Java LSP(jdtls),包括使用 PowerShell 脚本自动安装
添加其他 LSP(如 Vue)
现在你可以享受 OpenCode 带来的强大 AI 辅助编程体验了!如果遇到问题,欢迎在评论区留言交流。
