WEB开发网
开发学院软件开发VC 例解用 VC++ 6.0 实现 JNI 阅读

例解用 VC++ 6.0 实现 JNI

 2007-03-23 21:30:24 来源:WEB开发网   
核心提示:JNI是JDK的一部分,用于为Java提供一个本地代码的接口,例解用 VC++ 6.0 实现 JNI,通过使用JNI编写的程序能够确保你的代码能够完全的移植到所有的平台,JNI使得运行在JVM虚拟机上的Java代码能够操作使用其它语言编写的应用程序和库,windows安装目录下的system32下面,JDK安装目录下的

JNI是JDK的一部分,用于为Java提供一个本地代码的接口。通过使用JNI编写的程序能够确保你的代码能够完全的移植到所有的平台。JNI使得运行在JVM虚拟机上的Java代码能够操作使用其它语言编写的应用程序和库,比如C/C++以及汇编语言等。此外JNI提供的某些API还允许你把JVM嵌入到本地应用程序中。下图表达了JNI所扮演的角色。

本文将通过一个实例来阐述使用VC++6.0来实现JNI的完整过程。使用JNI来整合本地代码和Java代码的步骤是确定的,没有再创作的余地,所以读者可以通过本文的步骤来逐步认识到,其实Java也是"没有什么不可以"的。

一、JNI的实现任务描述:在Java中调用windows下的消息框函数,并且从Java中传递一个字符串作为MessageBox函数的显示文本参数,显示在消息框的中间。下面让我们一起进入这一奇妙的旅程。

Step 1:写一个Java类,在这个类中包含了需要调用的本地方法的描述。

//WinMsgBox.java
package edu.netcom.jni;
public class WinMsgBox 
{
  static{
    System.loadLibrary("WinMsgDll");  // (1)
  }
  public native void showMsgBox(String str); // (2)
}

(1)中WinMsgDll是动态链接文件的文件名,不用加扩展名,因为在不同的平台下动态链接文件扩展名是不同的,由JVM自动识别,比如在Solaris下,会被转换为WinMsgDll.so;而Win32环境下会转换为WinMsgDll.dll。这个文件名必须和Step 4中生成的文件名一致。这个文件的存放位置也很重要,它只能被放在JVM属性值java.library.path中指定的文件夹中。这个属性值可以使用System.getProperty("java.library.path");来查看。一般情况下,至少放在这几个位置是确定可靠的,windows安装目录下的system32下面,JDK安装目录下的bin下面,以及调用主类文件的当前目录。

1 2 3  下一页

Tags:解用 VC 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接