dqyym3667 2019-02-19 06:33
浏览 592
已采纳

在Windows上使用JNI从Java调用Golang会导致“动态链接库(DLL)初始化例程失败”

I created the following example project to test out calling Golang code from Java using JNI: https://github.com/blaubaer/golang-jni

When I call build.cmd I receive an error message like this:

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)

Used environment:

  • Windows: 10.0.17763, Build 17763, 64bit
  • Golang: 1.11.5, windows/amd64
  • Java: 11.0.2 2019-01-15 LTS, 64-Bit
  • MinGW-w64: x86_64-8.1.0-win32-sjlj-rt_v6-rev0

Thanks!

  • 写回答

1条回答

  • dre75230 2019-03-21 09:01
    关注

    It seems to be related to a bug inside Golang itself. There is currently a Pull Request opened runtime: This change modifies Go to fix c-shared dll crash on x64 windows #30944 where I can approve that this will fix the issue.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档