Java 异常未满足链接错误

Java 异常未满足链接错误,java,unsatisfiedlinkerror,Java,Unsatisfiedlinkerror,我正试图运行我的项目,但我有这个例外,我不知道下一步该怎么办 详细信息:在这个项目中,我需要使用lib.jar,但是这个jar文件需要.so文件 编辑 OpenJDK Server VM warning: You have loaded library /home/david/Retina/ReconocimientoRetina/sdk/libIddk2000jni.so which might have disabled stack guard. The VM will try to

我正试图运行我的项目,但我有这个例外,我不知道下一步该怎么办

详细信息:在这个项目中,我需要使用lib.jar,但是这个jar文件需要.so文件

编辑

    OpenJDK Server VM warning: You have loaded library /home/david/Retina/ReconocimientoRetina/sdk/libIddk2000jni.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
java.lang.UnsatisfiedLinkError: /home/david/Retina/ReconocimientoRetina/sdk/libIddk2000jni.so: libIddk2000.so: no se puede abrir el archivo del objeto compartido: No existe el archivo o el directorio
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at com.iritech.iddk.standard.Iddk2000Apis.<clinit>(Iddk2000Apis.java:221)
    at com.iritech.demo.functionCapture.open_device(functionCapture.java:1222)
    at com.iritech.demo.Iddk2000Main.getIris(Iddk2000Main.java:39)
    at com.iritech.demo.Iddk2000Main.main(Iddk2000Main.java:30)
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.iritech.iddk.standard.Iddk2000Apis.getIddkConfigNative(Lcom/iritech/iddk/standard/IddkConfig;)I
    at com.iritech.iddk.standard.Iddk2000Apis.getIddkConfigNative(Native Method)
    at com.iritech.iddk.standard.Iddk2000Apis.getSdkConfig(Iddk2000Apis.java:246)
    at com.iritech.demo.functionCapture.open_device(functionCapture.java:1225)
    at com.iritech.demo.Iddk2000Main.getIris(Iddk2000Main.java:39)
    at com.iritech.demo.Iddk2000Main.main(Iddk2000Main.java:30)
OpenJDK服务器VM警告:您已加载library/home/david/Retina/reconcimientorina/sdk/libIddk2000jni.so,这可能已禁用堆栈保护。VM现在将尝试修复堆栈保护。
强烈建议您使用“execstack-c”修复库,或使用“-z noexecstack”链接库。
java.lang.unsatifiedlinkerror:/home/david/Retina/reconcimientorina/sdk/libIddk2000jni.so:libIddk2000.so:no se puede abrir el archivo del objeto comparito:no existe el archivo el directorio
位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
位于java.lang.Runtime.load0(Runtime.java:809)
位于java.lang.System.load(System.java:1086)
请访问com.iritech.iddk.standard.iddk2000api。(iddk2000api.java:221)
在com.iritech.demo.functionCapture.open_设备上(functionCapture.java:1222)
位于com.iritech.demo.Iddk2000Main.getIris(Iddk2000Main.java:39)
位于com.iritech.demo.Iddk2000Main.main(Iddk2000Main.java:30)
线程“main”java.lang.UnsatisfiedLinkError中出现异常:com.iritech.iddk.standard.iddk2000api.getIddkConfigNative(Lcom/iritech/iddk/standard/IddkConfig;)I
位于com.iritech.iddk.standard.iddk2000api.getIddkConfigNative(本机方法)
位于com.iritech.iddk.standard.iddk2000api.getSdkConfig(iddk2000api.java:246)
在com.iritech.demo.functionCapture.open_设备上(functionCapture.java:1225)
位于com.iritech.demo.Iddk2000Main.getIris(Iddk2000Main.java:39)
位于com.iritech.demo.Iddk2000Main.main(Iddk2000Main.java:30)
我的图书馆

我有gnu/linux(ubuntu 64位)

编辑

在搜索答案之后,我找到了这个链接,我需要一个参数 “虚拟机参数”但不起作用为什么

我在workspace/reconcimeintorina/sdk/files.so文件夹中将本机库放入项目中

解决方案

我用这个牛排解决了我的问题

首先

1-添加到LD_库_路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/foobar/lib
2-重建缓存

以sudo的身份打开
/etc/ld.so.conf
,并在库目录中添加新行。在本例中,我们添加了
/opt/foobar/lib.

3-重新运行ldconfig以重建缓存:

sudo ldconfig
4-检查共享库缓存现在是否包括新目录中的共享库:

ldconfig -p
更多信息请参见本教程


如果使用ECLIPSE,请创建一个没有包名的项目(保留默认值)

在我使用了观众的所有建议/推荐之后,我尝试了这一点,并与我一起工作。
但是,您需要在VM-Djava.library.path=“c:…”

的环境中插入
。那么路径上的文件是什么呢?是的@DanW,我创建了一个库并添加了文件jar,在这个jar中添加了本机库。看起来本机库是为另一个硬件体系结构“cabecera ELF inválida”编译的(可能原因:endianness不匹配)“@Henry我有jvm 32位,我的异常更改为新异常,我编辑我的问题