gpt4 book ai didi

java - JNI-java.lang.UnsatisfiedLinkError但函数签名正确

转载 作者:行者123 更新时间:2023-12-01 21:49:33 25 4
gpt4 key购买 nike

首先,我将JDK 8 32bits与Eclipse 32bits一起使用。

我试图弄清楚如何解决此错误:


java.lang.UnsatisfiedLinkError:


我在C中检查了签名的功能,并在JAVA中检查了包装,但是看起来不错。

完整的错误是:


线程“主”中的异常java.lang.UnsatisfiedLinkError:
fr.Model.initModel(Ljava / lang / String; Ljava / lang / String; Ljava / lang / String; [I)V


Java的功能:

void initModel(String, String, String, int[]) in package fr and class Model


C函数:

JNIEXPORT void JNICALL Java_fr_Model_initModel (JNIEnv  *, jobject, jstring, jstring, jstring, jintArray);


在单独的JVM中启动它,但它确实找到了.dll。检查所有依赖项,它们都在system32中。

已经在进行外部“ C” {...}技巧来处理C ++。

有任何想法吗?

最佳答案

当本机库或它依赖的任何本机库(即在my.nibrary.path或DLL path处找不到myjni.dll从foo.dll和foo.dll导入的函数)对Java不可见(即在-Djava.library.path或您的Java进程和本机库体系结构不兼容,例如Java是32位的,但dll / so是64位的,反之亦然。

您可以使用java -version命令检查Java体系结构。然后您可以检查Windows DLL architectureUnix shared library architecture

要检查DLL依赖性,可以使用dependencywalker
要检查Unix共享库的依赖性,请检查this thread

关于java - JNI-java.lang.UnsatisfiedLinkError但函数签名正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58768334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com