goland运行配置需手动添加环境变量,如goproxy、gobin等,并勾选“include system environment variables”;working directory决定相对路径解析,path须显式补全,gobin未入path会导致dlv找不到。

GoLand运行配置里怎么加环境变量
必须进Edit Configurations…手动添加,IDE不会自动继承终端里的GOPROXY、LOG_LEVEL等变量。点开运行配置 → Environment variables右侧的…按钮,逐行填键值对:
-
GOROOT=/usr/local/go(仅当多版本共存且需隔离时才设;多数情况留空靠自动检测) -
GOBIN=/home/user/go/bin(确保dlv、gopls能被找到) -
GOPROXY=https://goproxy.cn,direct(缺,direct会导致私有模块解析失败) -
PATH=/home/user/go/bin:/usr/local/bin:$PATH(显式补全PATH,否则exec: "jq": executable file not found in $PATH)
填完务必勾选Include system environment variables,否则$HOME、$USER会丢失。
Program arguments和Working directory必须配对设
Program arguments只是传给main()的os.Args[1:],不控制文件路径解析;真正影响os.Open("config.yaml")能否成功的是Working directory。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 若配置文件在
./cmd/api/config.yaml,则Working directory必须设为$ProjectFileDir$/cmd/api或绝对路径,不能留空 -
Program arguments里写--port=8081 --env=staging,空格分隔,值含空格才用单引号,如'--name=prod server' - 别混用
go run main.go和go run .:前者忽略go.mod,后者才走module规则
GOROOT配错会导致gopls启动失败
不是“找不到SDK”,而是gopls启动时读不到$GOROOT/src下的标准库,日志里会出现failed to start gopls: exec: "gopls": executable file not found或cannot find package "fmt"。
- 别信Auto-detect——它在
asdf或goenv环境下大概率选错版本 - 终端执行
go env GOROOT,把输出的完整路径粘贴进Settings → Go → GOROOT,路径下必须有src、pkg、bin三个文件夹 - 填完必须重启GoLand,Reload project无效
- 验证方式:新建
main.go写fmt.Println("ok"),右上角绿色三角亮起且无波浪线才算对
dlv调试器报no such file or directory的真正原因
错误信息could not launch process: fork/exec /path/to/dlv: no such file or directory,90%不是路径问题,而是GOBIN没进PATH,导致IDE根本不知道dlv装在哪。
- 先终端跑
which dlv,如果没输出,说明没装或装错位置 - 执行
go install github.com/go-delve/delve/cmd/dlv@latest,再查go env GOBIN - 把
GOBIN路径加进系统PATH(macOS/Linux改~/.zshrc,Windows改系统变量),然后新开终端验证dlv version - GoLand里不用手动填dlv路径,只要
PATH通,它就能自动发现
最常被忽略的一点:GoLand默认不继承终端的PATH,哪怕你在.zshrc里export了GOBIN,IDE也看不到——必须显式写进运行配置的Environment variables里,或者改系统级PATH。










