首页 > 文章列表 > 如何从代码中获取当前的 GOPATH?

如何从代码中获取当前的 GOPATH?

golang
330 2023-05-31

问题内容

如何从代码中获取当前的 GOPATH?

正确答案

可以使用go env命令来获取与Go环境相关的配置信息,其中就包括GOPATH。

以下是一种通过代码获取当前GOPATH的方法:

package main

import (
	"fmt"
	"os/exec"
	"strings"
)

func getCurrentGOPATH() (string, error) {
	cmd := exec.Command("go", "env", "GOPATH")
	output, err := cmd.Output()
	if err != nil {
		return "", err
	}

	gopath := strings.TrimSpace(string(output))
	return gopath, nil
}

func main() {
	gopath, err := getCurrentGOPATH()
	if err != nil {
		fmt.Println("Failed to get GOPATH:", err)
		return
	}

	fmt.Println("Current GOPATH:", gopath)
}

在上述代码中,我们使用os/exec包来执行go env GOPATH命令,并获取命令的输出。然后,我们将输出进行处理,去除首尾的空格,得到当前的GOPATH。