java 循环结束 释放对象_AE92 for Java 中手动释放 COM 对象

作者:Flyingis

用Java进行ArcEngine或ArcGIS Server开发,在底层实际上是用Java调用AO

COM对象,ESRI用Jintegra库来解决Java对COM的调用问题,如果Java对象不再使用,Java虚拟机会自动将这些对象回收,然后

Jintegra将这些对象所指的实际COM对象销毁,默认情况下时间间隔是10秒,对于快速大量调用COM对象的操作来说,如在循环中,COM对象往往

得不到及时的销毁,以至于内存报错,这时我们需要手动销毁COM。

Jintegra释放方法:

com.linar.jintegra.Cleaner.release(objectRef);

在ArcEngine和ArcGIS

Server中如何释放COM呢?Jintegra为ArcObjects生成了一组proxy类,可以参考

com.esri.arcgis.interop命名空间,经常用的是

com.esri.arcgis.interop.Cleaner,它的release(java.lang.Object

anObject)和releaseAll()用来释放指定的或所有的COM对象,同时可以为COM连接和释放增加监听,

addConnectionListener(ConnectionListener

listener)和allUnreferencedListener(Unreferenced listener)。

同时可以参考:

HowTo:  Explicitly release a COM object accessed in a Java application

J-Integra for COM Document

Garbage Collection: Releasing Java References to COM Objects

Java调用COM的中间件Jintegra初探

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值