Java - 我有一个库(.a / .so)和头文件(.h),如何使用Java调用它们的函数?

时间:2014-09-25 08:54:19

标签: java c++ linux ubuntu .a

有人发给我他的静态库(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。

1 个答案:

答案 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