WEB开发网
开发学院软件开发Java 调试集成 Java 和 C/C++ 的代码 阅读

调试集成 Java 和 C/C++ 的代码

 2010-01-25 00:00:00 来源:WEB开发网   
核心提示: 什么是 JNI?Java 语言的设计者认识到创建 100% 纯 Java 应用程序是一个崇高的目标,他们也知道,调试集成 Java 和 C/C++ 的代码(2),在现实中,要实现这样的目标通常是非常困难的,在代码的某处,存在一个本机方法,当新的 Java 应用程序开发出来时,开发人员往往不愿意丢

什么是 JNI?

Java 语言的设计者认识到创建 100% 纯 Java 应用程序是一个崇高的目标。他们也知道,在现实中,要实现这样的目标通常是非常困难的。当新的 Java 应用程序开发出来时,开发人员往往不愿意丢弃旧的本机代码,这些代码可能写起来非常昂贵或者很困难。

Java 本机接口(Java Native Interface),或者 JNI,提供了从 Java 虚拟机(JVM)进入 JVM 运行所在计算机的本机世界的入口。通过使用这个入口,Java 程序员可以使用十分昂贵或者不可能以 Java 代码重写的旧的本机代码。JNI 允许本机代码调用 JVM、创建并访问对象、调用对象方法以及访问实例变量。开发人员所付出的代价是,这样做失去了 Java 平台“编写一次,到处运行”的优势,因为任何被调用的本机代码将受到特殊平台的约束。

Java 本机接口(JNI)可以将本机程序与 Java 程序集成在一起,并且可以帮助解决这个调试的问题。

JNI 程序的两种方法

使用 JNI 构造应用程序大致有两种方法 ― 标准方法和 调用方法。每种方法反映了 JVM 是如何在一个进程中启动的。我们将详细研究这两种方法,然后使用这两种方法进行调试。

标准 JNI 方法

假设有一个过程,它担负着一些繁重的数学计算工作。您已经将这个过程编写成本机库,并且想要从 Java 应用程序调用它。这就是我所指的通过标准方法使用 JNI;它是 JNI 的关键所在。

对于这种方法,通过运行一个例如 Java myApplication 的命令来启动 JVM,在代码的某处,存在一个本机方法。

标准 JNI 方法样本代码
我已经准备了一些样本代码来演示标准 JNI 方法。下载部分包含了以下七个文件:

jnitest.c

JNITest.class

上一页  1 2 3 4 5 6 7  下一页

Tags:调试 集成 Java

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