如何开始一个过程?

我尝试从看起来像这样的Google Go程序中启动JVM:


package main

import "fmt"

import "os"

import "log"

func main() {


var name string

name="\\jrex64\\bin\\java.exe"


var path="-Xbootclasspath:jrex64\\lib\\rt.jar;"+

"jrex64\\lib\\jfxrt.jar;"+

"jrex64\\lib\\resources.jar;"+

"jrex64\\lib\\ext\\sunjce_provider.jar;"+

"jrex64\\lib\\ext\\zipfs.jar;"+

"jrex64\\lib\\ext\\sunmscapi.jar;"+

"jrex64\\lib\\ext\\sunec.jar;"+

"jrex64\\lib\\ext\\dnsns.jar;"+

"jrex64\\lib\\ext\\access-bridge-64.jar;"+

"jrex64\\lib\\security\\local_policy.jar;"+

"jrex64\\lib\\jce.jar;"+

"jrex64\\lib\\jfr.jar;"+

"jrex64\\lib\\jsse.jar;"+

"jrex64\\lib\\charsets.jar;"+

"jrex64\\lib\\";




var args[] string=make([]string,4)

args[0]="-verbose"

args[1]=path;

args[2]="-cp Ganesha_lib\\*"

args[3]="-jar Ganesha.jar"


var attr* os.ProcAttr


proc,err:=os.StartProcess(name,args,attr)

proc.Wait();



if err!=nil {

    fmt.Println("an error occurred.\n")

    log.Fatal(err)

}


}

这是我的第一个Go程序。我完全不知所措,出现以下错误:


紧急情况:运行时错误:无效的内存地址或nil指针取消引用[信号0xc0000005代码= 0x0 addr = 0x0 pc = 0x4278b5] goroutine 1 [正在运行]:os.startProcess(0x4aacb4、0x14、0xf840001eb0、0x500000005、0x0 ...) :/Users/ADMINI~1/AppData/Local/Temp/2/bindist767862039/go/src/pkg/os/exec_posix.go:28 + 0x152 os.StartProcess(0x4aacb4,0x14,0xf840001eb0,0x500000005,0x0,... )C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist767862039/go/src/pkg/os/doc.go:24 + 0x5c main.main()D:/MyGoProject/src/main.go :60 + 0x23c goroutine 2 [syscall]:由runtime.main创建:C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist767862039/go/src/pkg/runtime/proc.c:221进程结束于退出代码2


我该如何解释该错误代码?什么地方出了错?以及如何获取JVM startet-它位于Go可执行文件的子目录中。


开满天机
浏览 212回答 3
3回答

青春有我

这里:var attr* os.ProcAttrproc, err := os.StartProcess(name, args, attr)该attr变量是零和提领时os.StartProcess它会导致你看到的错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go