2015-08-25 64 views
1

我試圖從Java調用簡單的C函數(使用痛飲):爲什麼我得到java.lang.UnsatisfiedLinkError(從java調用c函數時)?

Example.c:

int add(int x, int y) 
{ 
    return (x+y); 
} 

example.h文件:

int add(int x, int y); 

Example.i:

%module Example 

%{ 
#include "Example.h" 
%} 
int add(int x, int y); 

我創建的java文件使用: swig -java -package mainPkg Example.i

我的Java應用程序:

package mainPkg; 

public class Main { 

    public static void main(String[] args) { 
     System.out.print(Example.add(3, 5)); 

    } 

} 

但我發現了:

Exception in thread "main" java.lang.UnsatisfiedLinkError: mainPkg.ExampleJNI.add(II)I 
    at mainPkg.ExampleJNI.add(Native Method) 
    at mainPkg.Example.add(Example.java:13) 
    at mainPkg.Main.main(Main.java:9) 

爲什麼?我該如何解決它?

回答

1
static { System.loadLibrary("Example_C_LIB"); } 

解決它
相關問題