微软的解决方案2007-05-29 yycnet.yeah.net yyc译到本书完稿时为止,微软仍未提供对JNI的支持,只是用自己的专利方法提供了对非Java代码调用的支持。这一支持内建到编译器Microsoft JVM以及外部工具中。只有程序用Microsoft Java编译器编译,而且只有在Microsoft Java虚拟机(JVM)上运行的时候,本节讲述的特性才会有效。若计划在因特网上发行自己的应用,或者本单位的内联网建立在不同平台的基础上,就可能成为一个严重的问题。
微软与Win32代码的接口为我们提供了连接Win32的三种途径:
(1) J/Direct:方便调用Win32 DLL函数的一种途径,具有某些限制。
(2) 本原接口(RNI):可调用Win32 DLL函数,但必须自行解决“垃圾收集”问题。
(3) Java/COM集成:可从Java里直接揭示或调用COM服务。
后续的小节将分别探讨这三种技术。
写作本书的时候,这些特性均通过了Microsoft SDK for Java 2.0 beta 2的支持。可从微软公司的Web站点下载这个开发平台(要经历一个痛苦的选择过程,他们叫作“Active Setup”)。Java SDK是一套命令行工具的集合,但编译引擎可轻易嵌入Developer Studio环境,以便我们用Visual J++ 1.1来编译Java 1.1代码。