我正在尝试使用Go启动Java进程,但无法让Java识别类路径。代码看起来有点像:
args := []string{
"-Xmx64m",
"-Dmy.property=value,
"-cp",
"lib/jar1.jar:lib/jar2.jar",
"com.things.MyClass",
}
c := exec.Command(javaBinary, args...)
不幸的是,在执行此操作时,我从JVM获得了可怕的Error: Could not find or load main class
。但是,如果我从c.Args
获取输出并直接在终端中运行它似乎工作正常,这对我来说表明我在某种程度上错误地启动了该过程。
有更好的方法吗?
答案 0 :(得分:1)
请忽略这个问题,错误是args数组中的额外空格:
args := []string{
"-Xmx64m",
"-Dmy.property=value ", //<--trailing space
...
}
额外的空间停止进一步解析继续导致缺少类路径。