在Go中启动Java进程

时间:2015-04-10 14:26:55

标签: java go classpath

我正在尝试使用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获取输出并直接在终端中运行它似乎工作正常,这对我来说表明我在某种程度上错误地启动了该过程。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

请忽略这个问题,错误是args数组中的额外空格:

args := []string{
  "-Xmx64m",
  "-Dmy.property=value ", //<--trailing space
  ...
}

额外的空间停止进一步解析继续导致缺少类路径。