假设我们已经拥有了一个libma2x.so的动态链接库,下面来介绍下如何用swig来编译jni库:
编写ma2x.i
如果已经存在了一个ma2x.h的header文件, 更多的.i 文件的写可以参照www.swig.org/tutorial.ht…
%module Ma2x
%{
#include "ma2x.h"
%}
%include "ma2x.h"swig
swig -java -package cm.service -outdir cm/service ma2x.i
Gcc
gcc -c ma2x_wrap.c -fPIC -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
gcc -shared ma2x_wrap.o libma2x.so -o libma2xwrap.so
java 代码
static {
System.loadLibrary("ma2400wrap");
}Javac
javac -d . cm/service/*.java
Java Run
java -cp . -Djava.library.path=./ cm.service.Ma2xService
其它问题
解包
ar x libsome.a