有人发给我他的静态库(lib.a)和头文件(lib.h)它应该用C ++编写,我使用gcc编译器将静态库(lib.a)转换为共享库(.so)。现在我想使用Java调用库来使用它的函数。
我尝试过System.load和System.loadLibrary,但我不知道如何调用它的功能。例如,我发现从头文件中有一个函数调用MoveFront(int),它将返回状态的整数。
extern int MoveFront(int);
有办法吗?谢谢。
我使用的是Ubuntu 13.10,JDK 1.8.0_20,gcc 4.6.3。
答案 0 :(得分:2)
您无法直接在Java中调用它们
您必须使用JNI构建桥梁
将您的lib.a与bridge.c链接到libbridge.so
那么,java可以使用System.loadLibrary("bridge")
来使用它
这里的一些指南https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html