设为首页 加入收藏

TOP

Java JNI详述
2019-05-12 13:48:51 】 浏览:108
Tags:Java JNI 详述

什么是JNI:

JNI就是Java代码调用C代码的一种机制。是Java平台的重要补充。 优点就是,可以扩展Java功能。比如Java网络API中不提供TCP层以下协议实现。比如ICMP协议。既Ping。 所以无论什么方法都无法通过纯Java代码(不包含C)开发出类似Ping的程序。唯有通过JNI可实现。 缺点: 使用JNI开发的程序就限制了平台无关特性。

如何开发JNI程序呢?

我们写一个简单的入门程序, 打印简单的Hello,JNI。看一下是如何运行的。

1. 编程Java代码。

package jni;

public class HelloJNI {
public native void showMessage();
static{
System.loadLibrary("hellojni");
}
public static void main(String[] args) {
new HelloJNI ().showMessage();
}
}
2. 将该Java代码编译为Class文件。 注意native标识的方法为本地方法,及由JNI实现的方法。
javac jni\HelloJNI.java
3. 使用javah命令将生成的Class文件产生C文件的头文件。 命令如下。
javah jni.HelloJNI
4. 创建动态链接文件,以下以Windows为例创建DLL工程。
将jni.h(在jdk的include目录下)及javah 生成的jni_HelloJNI.h放到C 工程。
编写C程序如下
#include "jni.h"
#include "jni_HelloWorld.h"
JNIEXPORT void JNICALL Java_jni_HelloJNI_showMessage(JNIEnv *env, jobject obj)
{
printf("Hello, JNI\n");
return;
}
5. 编译工程。 注意需要把jdk的include目录,jdk\lib目录加入到C工程的编译路径中。就是说C编译环境可以找到jni.h及所需lib包。
6. 编译后生成DLL文件。
7. 将DLL文件加入到Java工程中,Path路径里。即可编译。
如何调试呢?
编译好程序了,可以正常运行则好。 不然运行不正常怎么调试呢?
调试Java我们可以用JDB进行调试。调试C程序我们可以用CDB调试。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android中Application的onCreate.. 下一篇5 hbase-shell +   hbase..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目