JNI:妥善管理Java对象的生命周期 [英] JNI: properly manage lifetime of a Java object

查看:256
本文介绍了JNI:妥善管理Java对象的生命周期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我创建一个在C机实现对++我怎么能保证当Java对象由JVM删除本机的部分也被删除?我可以添加一些方法,Java对象的用户必须显式调用,但我想知道是否有一些钩子,我可以把处理时,java对象被删除(垃圾回收),这样我就可以自动删除C ++实现的对象为好。

When I create a native implementation peer in c++ how can I ensure that native part is also deleted when java object is deleted by JVM? I can add some methods that user of java object has to call explicitly, but I'd like to know if there some hook that I could put to handle when java object is deleted (garbage collected) so that I can automatically delete c++ implementation object as well.

我回顾 JACE 它似乎这样做,但我需要运行PeerEnhancer到补丁生成的类文件(或许这就是它钩删除吗?也许它需要这个补丁别的东西)。不过,我想避免编译java文件搞乱,我不希望任何幻想

I reviewed JACE it seems that it does that, but I'd need to run PeerEnhancer to patch generated class file (probably that's how it hooks delete? or maybe it needs this patching for something else). However, I'd like to avoid messing with compiled java files, I don't want anything fancy

推荐答案

这是一个罕见的情况下,你应该真正使用一个终结,但你也应该让你的Java类可关闭为好。

This is a rare case where you should really use a finalizer, but you should also make your Java class Closeable as well.

这篇关于JNI:妥善管理Java对象的生命周期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆