Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數據加載中……

          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初探

          posted on 2007-07-09 14:10 Flyingis 閱讀(3712) 評論(1)  編輯  收藏 所屬分類: ArcEngine

          評論

          # re: AE92 for Java 中手動釋放 COM 對象  回復  更多評論   

          能不能寫一篇 網絡分析的java。我想寫一個開源的類似arcserve的程序
          2008-01-17 09:38 | 阿笨
          主站蜘蛛池模板: 彩票| 阳原县| 石家庄市| 济源市| 旺苍县| 保山市| 南开区| 深水埗区| 孟州市| 澜沧| 武川县| 蒙阴县| 镇康县| 浮山县| 青岛市| 栖霞市| 眉山市| 彝良县| 镇巴县| 邯郸县| 嘉峪关市| 英吉沙县| 乌审旗| 日土县| 信宜市| 绥宁县| 辉南县| 新竹市| 万宁市| 安乡县| 平泉县| 会东县| 滁州市| 米林县| 密山市| 云阳县| 平凉市| 建湖县| 永泰县| 滕州市| 商城县|