2017-04-10 28 views
-1

私はubuntuのmy test.cppからlibcc.soを作成し、test.cppの内容はffmpegとopencvライブラリにリンクしています。 libcc.soを作成した後、JNItest2.javaにロードされます。端末でjarファイルを実行するとエラーが発生する

JNItest2.java:

public class JNItest2 { 
    public native void helloworld(); 
    static{ 
     String libPath= "/home/sun/workspace/JNItest2/src"; 
     System.setProperty("java.library.path",libPath); 
     String Path = System.getProperty("java.library.path"); 
     System.out.println("java.library.path=" + Path); 
     System.loadLibrary("cc");   
    } 
    public static void main(String[] args){   
    new JNItest2().helloworld(); 
    } 
} 

しかし、JNItest2.javaは、Eclipse上で実行することができますが、エクスポートされたjarファイルは、端末内で実行することはできません。ターミナルで

エラーメッセージ:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no test in 
java.library.path at 
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at 
java.lang.Runtime.loadLibrary0(Runtime.java:870) at 
java.lang.System.loadLibrary(System.java:1122) at JNItest2.<clinit> 
(JNItest2.java:23) 

誰もがこの問題を解決するために私を助けていますか?

おかげで、秀

+0

あなたの心を作りましょう。あなたのソースコードは '' cc "'と表示されますが、エラーメッセージには '' test'と表示されます。 – EJP

答えて

0

は、JNIの開発に関連したサンプルについてはこちらをご覧ください:

http://jnicookbook.owsiak.org/recipe-No-001/

これは、あなたが実行するために必要なすべての要素を見てとることができ、非常に単純なアプリですJNIベースのコード。 :

+0

ありがとうございます、私の問題は、LD_LIBRARY_PATHを設定することによって解決されます。 – Hsiu

関連する問題