go build和go run 获取相对路径

65 阅读1分钟
  1. go run 和 go build 的编译文件执行路径并不同 go run 执行时会将文件放到 /tmp/go-build...目录下,编译并运行
  2. 获取编译后的可执行文件路径(go build)
import (
    "path/filepath"
    "os"
    "os/exec"
    "string"
)

func GetAppPath() string {
    file, _ := exec.LookPath(os.Args[0])
    path, _ := filepath.Abs(file)
    index := strings.LastIndex(path, string(os.PathSeparator))

    return path[:index]
}

  1. go run路径
package main  
  
import (  
"flag"  
"fmt"  
)  
  
func main() {  
var appPath string  
flag.StringVar(&appPath, "app-path", "app-path", "")  
flag.Parse()  
fmt.Printf("App path: %s", appPath)  
}

执行命令即可 go run main.go --app-path "Your project address"

参考:blog.csdn.net/qq175023117…