JNI非Java类成员

时间:2011-03-09 14:23:55

标签: java-native-interface member finalization

我想用C接口创建一个针对某些第三方库的Java包装器。该库在一个复杂的Context实体上运行,该实体本质上是一个C ++对象(C ++在该库内部使用,但API在纯C中)。将此实体包装到可从Java访问的类中是很自然的。为此,应将指向Context的指针存储在某处。

我看到两个选项:

  • 在java端声明一个新成员(例如,长)并将其转换为JNI方法实现中的指针类型
  • 在JNI标头中声明一个新成员(如果Java依赖于javah为我提供的结构大小,这可能是非法的)

关于JNI的所有教程都太简单了,不能给我一个关于如何使用Java类包装复杂实体的提示,对更详细文档的任何链接都表示赞赏。

我也想知道调用Context销毁函数的适当位置(内部的C ++析构函数)我不想使用Java finalize,因为Java不支持finalize方法,我认为有一种方法可以定义在本机方面的销毁程序。

0 个答案:

没有答案