从C头文件生成Java接口

我们有一些我们需要与之接口的专有库.这些库是 Windows DLL或 Linux .so文件.我们得到了标题来定义接口.由于我从未对本机库进行任何操作,因此我查看了JNAerator(http://code.google.com/p/jnaerator/)以及BridJ和JNA的内容.

使用C头文件和编译的lib生成接口的简单方法是什么?例如,通常采用JNA,例如:

SomeDLL lib = (SomeDLL) Native.loadLibrary("some_dll",SomeDLL.class);

我必须将DLL保留在某处:如何将DLL与Jar捆绑在一起?我使用Maven来构建Jar文件……但Native.loadLibrary接口不允许直接指定路径.

解决方法

JNI编码通常是编写C代码以创建本机粘合方法的手动过程.有一整本书可以解释它.

在某些情况下,http://jna.java.net/可以自动化或加速此过程,但不要指望它.

除非您沿着使用Osgi或类似Tanukisoft打包工具的方式走下去,否则您无法“捆绑本机库”,因此Java中没有用于此目的的内置功能.

您可以使用-Djava.library.path连接点以告诉java在何处查找本机库,或使用允许您指定完整路径的System.loadLibrary的较低级API.

如果您的本机库依次具有依赖关系,请注意与PATH和LD_LIBRARY_PATH的交互.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...