如何在Golang中使用Jar文件?

use*_*973 6 jar go

是否可以在Go代码中使用jar文件类方法.如果是这样,请转发给我相同的链接.我搜索了同样的内容

GoDoc/github.com/code.google

但是没有这样的包构建.

Lin*_*ope 23

只有在非常迂腐的意义上,你才能理论上在Go中编写某种JVM环境,它可以运行恰好与Go分配的内存交互的JVM字节码.

在任何实际意义上,Java(和Scala等)以完全不同的方式编译Go,并且这样做是不可行的.Go具有自己的运行时特别复杂,这也使得逆操作变得复杂(从Java运行Go函数).

如果您需要与Go的Java代码进行通信,我建议您查看RPC,您可以将Java程序作为单独的进程启动,并通过本地网络协作调用方法.这需要一点点努力,但不是很多.它比编写框架更容易从Go真正调用Java方法.

另一种选择是通过使用Java程序os/exec,将它们输出到文件或命令行,然后读取该输出并解析它来调用Java程序,但这比RPC更脆弱,容易出错和安全漏洞.

正如Evan在评论中提到的那样,您可以将JNI(Java Native Interface)与C入口点一起使用.因此,使用Cgo,您可以启动JVM并调用Java代码.这个网站似乎有一个关于如何在C和C++中设置它的教程.我不太熟悉从这个方向使用JNI所以我不能真正推荐它,也不能阻止你使用它.它确实会在您的构建过程引入C依赖项,因此请注意这一点.

  • 贾格似乎死了。 (2认同)