如何启动Go中非文件的进程(例如,打开网页)

我想打开一个网络浏览器:


c, err := exec.Command("http://localhost:4001").Output()

if err != nil {

    fmt.Printf("ERROR: %v, %v\n",err,c)

} else {

    fmt.Printf("OK:%v\n",c)

}

我得到了错误


ERROR: exec: "http://localhost:4001": file does not exist

编辑:当您执行以下操作时,我要实现的功能与Windows和C#中的功能相同:


Process.Start("http://localhost:4001")

有了它,您的默认浏览器的新实例将启动,显示URL


慕运维8079593
浏览 223回答 3
3回答

慕勒3428872

"http://localhost:4001/"是URL,无法执行,但您可以执行网络浏览器(例如firefox)并将URL作为第一个参数传递。在Windows上,存在OS X和Linux帮助程序,这些程序可用于启动默认的Web浏览器。我想FreeBSD和Android也有类似的事情,但是我不确定。以下代码段应在Windows,OS X和大多数Linux发行版上运行:var err errorswitch runtime.GOOS {case "linux":    err = exec.Command("xdg-open", "http://localhost:4001/").Start()case "windows", "darwin":    err = exec.Command("open", "http://localhost:4001/").Start()default:    err = fmt.Errorf("unsupported platform")}

回首忆惘然

在Windows下使用:exec.Command("cmd", "/c", "start", "http://localhost:4001/").Start()

慕姐8265434

使用exec.Command("open", "http://localhost:4001/").Start()在以上tux21b的答案中,Windows上对我不起作用。但是这样做:exec.Command(`C:\Windows\System32\rundll32.exe`, "url.dll,FileProtocolHandler", "http://localhost:4001/").Start()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go