1,准备工作,下载jna.jar, 这是动态库依赖的jar包
wget http://repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.2/jna-4.5.2.jar
如果没有javac,需要自己安装,请运行
sudo yum -y install java-1.7.0-openjdk-devel.x86_64
2,
a) 编译c code成为动态库
g++ -fpic -shared -o libtest.so test.cpp
b)编译java
javac -classpath jna-4.5.2.jar jnatest1.java
c)运行java
java -classpath .:jna-4.5.2.jar jnatest1
3,源code
test.cpp
using namespace std;
extern "C"
{
void test() {
cout << "TEST" << endl;
}
int addTest(int a,int b)
{
int c = a + b ;
return c ;
}
}
文件:jnatest1.java
import com.sun.jna.Library;
import com.sun.jna.Native;
public class jnatest1 {
public interface Clibrary extends Library {
Clibrary INSTANTCE = (Clibrary) Native.loadLibrary("test",
Clibrary.class);
void test();
int addTest(int a,int b);
}
public static void main(String[] args) {
Clibrary.INSTANTCE.test();
int c = Clibrary.INSTANTCE.addTest(10,20);
System.out.println(c);
}
}