Запуск Java-процесса в Go

1

Я пытаюсь запустить Java-процесс, используя Go, но я не могу заставить Java распознавать classpath. Код выглядит примерно так:

args := []string{
  "-Xmx64m",
  "-Dmy.property=value,
  "-cp",
  "lib/jar1.jar:lib/jar2.jar",
  "com.things.MyClass",
}
c := exec.Command(javaBinary, args...)

К сожалению, при выполнении этого я получаю страшную Error: Could not find or load main class из JVM. Однако, если я беру вывод из c.Args и запускаю его непосредственно в терминале, он, кажется, работает очень хорошо, что для меня означает, что я каким-то образом запускаю процесс неправильно.

Есть ли лучший способ сделать это?

Теги:
go
classpath

1 ответ

1

Не обращайте внимания на этот вопрос, ошибка была лишним пространством в массиве args:

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

Дополнительное пространство останавливает дальнейший синтаксический анализ от продолжения, ведущего к отсутствующему пути к классам.

Сообщество Overcoder
Наверх
Меню