首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

利用 Microsoft Java VM 快速將 Java 類暴露為 COM 組件

     編輯:Java 相關知識

原理簡述

Microsoft Java Virtual Machine (MSJVM) 內建支持將 Java 類的 public 方法自動映射為 COM 对象接口,無需編寫 IDL 或 C++ 代碼。只需將編譯後的 .class 放入信任目錄,使用 javareg 工具註冊,即可在 ASP/VB/Script 中像調用原生 COM 組件一樣調用 Java 邏輯。

完整步驟

  1. 編寫 Java 類 (所有成員 public):
    public class javaCOM {
        public String szHello = "Hello World";
        public String anyFunc() {
            return "As returned by anyFunc !";
        }
    }
    
  2. 編譯:使用 Visual J++ 或 MS SDK jvc javaCOM.java 生成 javaCOM.class。
  3. 部署:複製 .class 至 %WINNT%\java\trustlib (受信任庫目錄)。
  4. 註冊 COM:
    javareg /register /class:javaCOM /progid:javaCOM.Test
    
  5. 調用示例 (ASP):
    <%
    Set jc = Server.CreateObject("javaCOM.Test")
    Response.Write jc.szHello & "<br>"
    Response.Write jc.anyFunc & "<br>"
    %>
    

關鍵注意事項

  • 數據類型映射:Java String 自動轉為 COM BSTR;基本類型對應 Variant 子類型;複雜對象需實現特定接口。
  • 線程模型:MSJVM COM 包裝器默認單線程單元 (STA),高併發場景需注意。
  • 版本依賴:此技術**僅限 Microsoft JVM (JView)**,標準 Sun/Oracle JVM (HotSpot) **不支持**。現代環境建議使用 JNI、JNA、Jacob 或 COM4J 橋接。
  • 安全性:trustlib 賦予完全信任,生產環境需嚴格控制部署來源。

歷史定位

此方案在 1990 年代末/2000 年代初期 ASP + Java 混合開發中極具吸引力,隨著微软停止更新 MSJVM (IE4/5/6 時代) 並轉向 .NET,已成為歷史技術。現代 Java-COM 互操作請參考 Jacob 或 Com4j。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved