如何在不为每次调用调用 JVM 的情况下从 Go 调用 Java 代码?

是否可以(如果可以,推荐的方法是什么)从Go调用 java 代码,而无需为每个函数调用启动 JVM?

即,是否有任何等效于 python 的 jpype 解决方案,它允许您启动 JVM 一次,然后使用已经启动的 JVM 导入 Java 类并调用它们?


冉冉说
浏览 262回答 3
3回答

慕虎7371278

使用cgo调用使用JNI 调用 API创建 JVM 实例的 C 代码,并使用 JNI 接口调用 Java 代码。由于 goroutine 在技术上可以在本机线程之间切换,因此在进入和退出 Go 代码和/或使用本机线程库(如 pthreads)进行补充时,您可能必须非常小心地测试、附加和分离线程到 JVM。

翻过高山走不出你

将您的 Java 代码捆绑在“服务器”中,并使用“rest/soap/thrift”之类的 RPC 调用它并保持服务器运行。我不知道有任何系统可以为您自动执行此操作。

qq_花开花谢_0

您可以在 Java 中创建一个 Java 管理类,它能够与您的 Go 程序对话,并且您运行一次,并在您的 Go 程序要求时对其他 Java 代码进行适当的调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go