在 Windows 上使用 JNI 从 Java 调用 Golang 导致

我创建了以下示例项目来测试使用 JNI 从 Java 调用 Golang 代码:https ://github.com/blaubaer/golang-jni


当我打电话时,build.cmd我收到如下错误消息:


Exception in thread "main" java.lang.UnsatisfiedLinkError: [...]\out\hello.dll: A dynamic link library (DLL) initialization routine failed

        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)

        at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)

        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)

        at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)

        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2649)

        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:829)

        at java.base/java.lang.System.loadLibrary(System.java:1867)

        at Hello.<clinit>(Hello.java:3)

使用环境:

  • Windows:10.0.17763,内部版本 17763,64 位

  • Golang:1.11.5,windows/amd64

  • Java:11.0.2 2019-01-15 LTS,64 位

  • MinGW-w64:x86_64-8.1.0-win32-sjlj-rt_v6-rev0

谢谢!


慕哥6287543
浏览 309回答 1
1回答

开心每一天1111

它似乎与 Golang 本身内部的一个错误有关。当前有一个拉取请求打开的运行时:此更改修改了 Go 以修复 x64 Windows #30944 上的 c-shared dll 崩溃,我可以批准这将解决问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java