【问题标题】:exec : hangman.go Executable file not found in $PATHexec : hangman.go 在 $PATH 中找不到可执行文件
【发布时间】:2021-12-03 09:44:11
【问题描述】:

我在尝试将我的刽子手游戏 (hangman.go) 运行到其他程序 (server.go) 时遇到问题

package main

import (
    "log"
    "os/exec"
)

func main() {

    cmd := exec.Command("hangman.go")

    err := cmd.Run()

    if err != nil {
        log.Fatal(err)
    }
}

我也尝试过构建一个hangman.exe,但是当我运行server.go时我仍然遇到同样的错误

2021/12/03 10:42:19 exec: "hangman.go": executable file not found in $PATH
exit status 1

【问题讨论】:

  • 不能“运行”hangman.go,那是源文件,不是可执行文件,需要先编译。
  • “我也尝试过构建hangman.exe,但运行server.go 时仍然出现同样的错误”我已经使用hangman.exe 完成了,但我遇到了完全相同的错误跨度>
  • exec.Command("hangman.go") 是错误的。它应该只是 exec.Command("hangman")

标签: go path exit


【解决方案1】:

你有两个问题:

  1. 你不能执行 *.go 源文件,你必须使用你编译的hangman.exe。

  2. 如果您的命令“contains no path separators”然后exec.Command() 在您的PATH 环境变量中查找该命令,它不在任何这些目录中,因此它不会运行。您需要指定文件的相对路径或完全限定路径,如果它在当前工作目录中,则可以是 .\hangman.exe(或类似 unix 的系统上的 ./hangman):

package main

import (
    "log"
    "os/exec"
)

func main() {

    cmd := exec.Command(".\hangman.exe")

    err := cmd.Run()

    if err != nil {
        log.Fatal(err)
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多