2016-11-29 3 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検索の答えは私はこのリンクを見つける、私は引数を必要とします "VM引数"が、なぜ動作しないのですか?

私は、フォルダのワークスペース/ ReconocimientoRetina/SDK/files.so

enter image description here

+0

PATHに '.so'ファイルがありますか? –

+0

はい@DanW、私はライブラリを作成し、このjarにファイルjarを追加して、ネイティブライブラリを追加します。 –

+0

ネイティブライブラリが別のHWアーキテクチャ "cabecera ELFinválida(可能な理由:エンディアン不一致)"用にコンパイルされているようです。 – Henry

答えて

0

ソリューション内のプロジェクトへのネイティブライブラリを持っています。

私は、これは

最初

LD_LIBRARY_PATH

須藤として2リビルドキャッシュ

オープン/etc/ld.so.conf

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

に1-追加し、新しい行を追加しsteaps使用して私の問題を解決しましたライブラリディレクトリを使用します。この場合、我々はキャッシュを再構築するための再実行にldconfig /opt/foobar/lib.

3-追加:

ldconfig -p 
:共有ライブラリのキャッシュが新しいディレクトリから共有ライブラリが含まれている場合

sudo ldconfig 

4-チェック

詳しい情報このチュートリアルを参照してください https://codeyarns.com/2014/01/14/how-to-add-library-directory-to-ldconfig-cache/

enter image description here