- 写在前面的话
- 引言
- 第 1 章 对象入门
- 第 2 章 一切都是对象
- 第 3 章 控制程序流程
- 第 4 章 初始化和清除
- 第 5 章 隐藏实施过程
- 第 6 章 类再生
- 第 7 章 多形性
- 第 8 章 对象的容纳
- 第 9 章 违例差错控制
- 第 10 章 Java IO 系统
- 第 11 章 运行期类型鉴定
- 第 12 章 传递和返回对象
- 第 十三 章 创建窗口和程序片
- 第 14 章 多线程
- 第 15 章 网络编程
- 第 16 章 设计范式
- 第 17 章 项目
- 附录 A 使用非 JAVA 代码
- 附录 B 对比 C++和 Java
- 附录 C Java 编程规则
- 附录 D 性能
- 附录 E 关于垃圾收集的一些话
- 附录 F 推荐读物
A.5.2 MS Java/COM 集成
同 C++/COM 程序员相比,Microsoft Java 编译器、虚拟机以及各式各样的工具极大简化了 Java/COM 程序员的工作。编译器有特殊的引导命令和包,可将 Java 类当作 COM 类对待。但在大多数情况下,我们只需依赖 Microsoft JVM 为 COM 提供的支持,同时利用两个有力的外部工具。
Microsoft Java Virtual Machine(JVM)在 COM 和 Java 对象之间扮演了一座桥梁的角色。若将 Java 对象创建成一个 COM 服务器,那么我们的对象仍然会在 JVM 内部运行。Microsoft JVM 是作为一个 DLL 实现的,它向操作系统展示出了 COM 接口。在内部,JVM 将对这些 COM 接口的函数调用映射成 Java 对象中的方法调用。当然,JVM 必须知道哪个 Java 类文件对应于服务器执行模块;之所以能够找出这方面的信息,是由于我们事前已用 Javareg 在 Windows 注册表内注册了类文件。Javareg 是与 Microsoft Java SDK 配套提供的一个工具程序,能读入一个 Java 类文件,生成相应的类型库以及一个 GUID,并可将类注册到系统内。亦可用 Javareg 注册远程服务器。例如,可用它注册在不同机器上运行的一个服务器。
如果想写一个 Java/COM 客户,必须经历一系列不同的步骤。Java/COM“客户”是一些特殊的 Java 代码,它们想激活和使用系统内注册的一个 COM 服务器。同样地,虚拟机会与 COM 服务器沟通,并将它提供的服务作为 Java 类内的各种方法展示(揭示)出来。另一个 Microsoft 工具是 jactivex,它能读取一个类型库,并生成相应的 Java 源文件,在其中包含特殊的编译器引导命令。生成的源文件属于我们在指定类型库之后命名的一个包的一部分。下一步是在自己的 COM 客户 Java 源文件中导入那个包。
接下来让我们讨论两个例子。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论