2016-11-29 57 views
2

我想運行我的項目,但我有這個例外,我不知道接下來要做什麼。例外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

EDIT

AFTE r搜索答案我找到這個鏈接,我需要在「虛擬參數」 參數,但不工作,爲什麼?

我的本地庫到文件夾中的工作區/ ReconocimientoRetina/SDK/files.so

enter image description here

+0

PATH上是否有'.so'文件? –

+0

是的@DanW,我創建一個庫並添加文件jar,到這個jar添加本地庫。 –

+0

看起來像本地庫被編譯爲另一個HW體系結構「cabecera ELFinválida(可能的原因:排序不匹配)」。 – Henry

回答

0

解決方案項目。

我用這個steaps

首先要解決我的問題

1 - 添加到LD_LIBRARY_PATH

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

2 - 重建緩存

打開/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