微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从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的交互.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐