异常UnsatisfiedLinkError

时间:2016-11-29 19:05:35

标签: 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 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)

我的图书馆

我有gnu / linux(ubuntu 64位) enter image description here

修改

在搜索答案后我找到了这个链接,我需要一个参数 &#34; VM Argument&#34;但是没有工作原因??

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

enter image description here

2 个答案:

答案 0 :(得分:0)

解。

我使用这个障碍解决了我的问题

第一

1 - 添加到LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/foobar/lib

2-Rebuild cache

以sudo打开/etc/ld.so.conf并在库目录中添加一个新行。在这种情况下,我们会添加/opt/foobar/lib.

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

sudo ldconfig

4 - 检查共享库高速缓存现在是否包含新目录中的共享库:

ldconfig -p

更多信息请参阅本教程 https://codeyarns.com/2014/01/14/how-to-add-library-directory-to-ldconfig-cache/

enter image description here

答案 1 :(得分:0)

如果您使用的是ECLIPSE,请创建一个没有包名称的项目(保留默认设置)。

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

处的环境中插入