JNI加载库

时间:2015-04-17 13:27:35

标签: java c++ c java-native-interface shared-libraries

我正在java中开发一个应用程序来与模拟器,X-Plane进行通信,使用x-plane sdk,它在C中有它。我下载了SDK并包含.libm .h和.cpp文件。< / p>

我已经在互联网上搜索了如何在我的程序中加载这些库,我找到了Java Native Interface,所以我开始阅读这个,寻找符合我案例的例子,但我只找到了同样的情况,如何创建c库。

我的问题是我已经有了头文件和库,而不是.dll。

如何在不自己创建库的情况下进行加载

我知道这可能是一种非常简单的方式,但我不知道,我非常感谢回答我的努力。

2 个答案:

答案 0 :(得分:1)

如果它是严格的C接口,请查看JNA:

http://en.wikipedia.org/wiki/Java_Native_Access

答案 1 :(得分:0)

如果你不能将源代码重新编译成动态库(例如,.so文件),你可以做的另一个黑客就是创建一个简单的.c包装器,静态链接在静态库并将其编译成动态库。包装器可以&#34;转发&#34;您需要进入静态库的调用,以确保从静态库中获得的内容包含在二进制文件中。

Here就是一个例子(该答案的命令行中的.o文件将由您的包装器替换。)