有人寄给我他的静态库(lib.a)和头文件(lib.h)--应该用C++编写,我使用gcc编译器将静态库(lib.a)转换为共享库(.so)。现在,我想使用Java调用库来使用它的函数。
我尝试过System.load和System.loadLibrary,但是我不知道如何调用它的函数。例如,我看到头文件中有一个函数名为MoveFront(int),它将返回状态的整数。
extern int MoveFront(int);有办法这么做吗?谢谢。
我使用Ubuntu13.10,JDK 1.8.0_20,gcc 4.6.3。
发布于 2014-09-25 10:14:24
您不能在Java中直接调用它们
你必须用JNI建一座桥
将lib.a与bridge.c链接到libbridge.so中,则java可以使用System.loadLibrary("bridge")来使用它
这里的一些指南https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html
https://stackoverflow.com/questions/26034357
复制相似问题