为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕运维8079593 2021-04-27 13:14:09
我想打开一个网络浏览器: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
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

"http://localhost:4001/"是URL,无法执行,但您可以执行网络浏览器(例如firefox)并将URL作为第一个参数传递。


在Windows上,存在OS X和Linux帮助程序,这些程序可用于启动默认的Web浏览器。我想FreeBSD和Android也有类似的事情,但是我不确定。以下代码段应在Windows,OS X和大多数Linux发行版上运行:


var err error

switch 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")

}


查看完整回答
反对 回复 2021-05-10
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

在Windows下使用:

exec.Command("cmd", "/c", "start", "http://localhost:4001/").Start()


查看完整回答
反对 回复 2021-05-10
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

使用

exec.Command("open", "http://localhost:4001/").Start()

在以上tux21b的答案中,Windows上对我不起作用。但是这样做:

exec.Command(`C:\Windows\System32\rundll32.exe`, "url.dll,FileProtocolHandler", "http://localhost:4001/").Start()



查看完整回答
反对 回复 2021-05-10
  • 3 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信