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 install

opencode

二、模型配置(使用 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

执行步骤

  1. 将上述脚本保存为 installjdtls.ps1

  2. 在文件资源管理器中进入脚本所在目录,地址栏输入 powershell 并回车。

  3. 在 PowerShell 中运行:

    复制代码
    .\installjdtls.ps1
  4. 观察输出。如果出现类似下面的内容,其实是成功的

    复制代码
    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_OPTIONSincubator 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 辅助编程体验了!如果遇到问题,欢迎在评论区留言交流。

相关推荐
Seven971 小时前
Tomcat Request请求处理:Container设计
java
逸Y 仙X1 小时前
文章十五:ElasticSearch 运用ingest加工索引数据
java·大数据·elasticsearch·搜索引擎·全文检索
京师20万禁军教头2 小时前
35面向对象(中级)-编程思想
java
yuzhiboyouye2 小时前
java redis(缓存)
java·redis·缓存
zhensherlock2 小时前
Protocol Launcher 系列:Beorg 高效任务管理的协议支持
前端·javascript·typescript·node.js·自动化·github·js
大大杰哥2 小时前
DAG 学习笔记:从拓扑排序到并行执行
java
2501_913061342 小时前
JVM虚拟机——面试中的八股文(下)
java·jvm·面试
京师20万禁军教头2 小时前
36面向对象(高级)-类变量(静态变量)和类方法(静态方法)
java
deviant-ART2 小时前
HttpServletResponse 中 Header 与 OutputStream 的正确使用顺序(避坑指南)
java·后端·servlet