返回介绍

附录 A 使用非 JAVA 代码

发布于 2024-10-15 23:56:36 字数 1002 浏览 0 评论 0 收藏 0

JAVA 语言及其标准 API(应用程序编程接口)应付应用程序的编写已绰绰有余。但在某些情况下,还是必须使用非 JAVA 编码。例如,我们有时要访问操作系统的专用特性,与特殊的硬件设备打交道,重复使用现有的非 Java 接口,或者要使用“对时间敏感”的代码段,等等。与非 Java 代码的沟通要求获得编译器和“虚拟机”的专门支持,并需附加的工具将 Java 代码映射成非 Java 代码(也有一个简单方法:在第 15 章的“一个 Web 应用”小节中,有个例子解释了如何利用标准输入输出同非 Java 代码连接)。目前,不同的开发商为我们提供了不同的方案:Java 1.1 有“Java 固有接口”(Java Native Interface,JNI),网景提出了自己的“Java 运行期接口”(Java Runtime Interface)计划,而微软提供了 J/Direct、“本源接口”(Raw Native Interface,RNI)以及 Java/COM 集成方案。

各开发商在这个问题上所持的不同态度对程序员是非常不利的。若 Java 应用必须调用固有方法,则程序员或许要实现固有方法的不同版本——具体由应用程序运行的平台决定。程序员也许实际需要不同版本的 Java 代码,以及不同的 Java 虚拟机。

另一个方案是 CORBA(通用对象请求代理结构),这是由 OMG(对象管理组,一家非赢利性的公司协会)开发的一种集成技术。CORBA 并非任何语言的一部分,只是实现通用通信总线及服务的一种规范。利用它可在由不同语言实现的对象之间实现“相互操作”的能力。这种通信总线的名字叫作 ORB(对象请求代理),是由其他开发商实现的一种产品,但并不属于 Java 语言规范的一部分。

本附录将对 JNI,J/DIRECT,RNI,JAVA/COM 集成和 CORBA 进行概述。但不会作更深层次的探讨,甚至有时还假定读者已对相关的概念和技术有了一定程度的认识。但到最后,大家应该能够自行比较不同的方法,并根据自己要解决的问题挑选出最恰当的一种。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文