我正在尝试在Java代码中访问C结构。我知道有各种技术可以做到这一点,但我正在寻找最有效的方法来最小化语言之间的方法调用(通过JNI)和减少内存副本。
我的想法是将一个ByteBuffer指针从Java传递给C,并将C struct指针放在ByteBuffer中。然后,从Java端,我可以使用直接内存访问从C结构访问数据,并将变量解析为Java类。这样的事情是可能的,有人可以让我开始吗?
有没有更好/更快的技术?
答案 0 :(得分:0)
我已经能够在Github上使用JNA(Java Native Access)项目轻松地从Java调用C语言。它运行良好,我也注意到他们讨论了如何从Java访问C结构。看一下这个页面(向下滚动阅读README):
并从该页面链接,他们的入门文档提供了访问和传递C结构的详细信息和示例: