黑马程序员技术交流社区
标题:
native修饰的本地方法
[打印本页]
作者:
邓飞飞
时间:
2012-3-19 17:28
标题:
native修饰的本地方法
求高手用native写个小程序,我想知道它的使用方法!!
作者:
许圣建
时间:
2012-3-19 17:58
楼主问的很深啊,我以前只知道 "A native method is a Java method whose implementation is provided by non-java code."这个概念,
楼主要一个例子,我只能从网上找一个例子来,我只能大体看得懂,你研究native的应该很容易看懂,只是c的一个hello world:
首先写好JAVA文件
package com.hode.hodeframework.modelupdate;
public class CheckFile
{
public native void displayHelloWorld();
static
{
System.loadLibrary("test");
}
public static void main(String[] args) {
new CheckFile().displayHelloWorld();
}
}
然后根据写好的文件编译成CLASS文件
然后在classes或bin之类的class根目录下执行javah -jni com.hode.hodeframework.modelupdate.CheckFile, 就会在根目录下得到一个com_hode_hodeframework_modelupdate_CheckFile.h的文件
然后根据头文件的内容编写com_hode_hodeframework_modelupdate_CheckFile.c文件
#include "CheckFile.h"
#include
#include
JNIEXPORT void JNICALL Java_com_hode_hodeframework_modelupdate_CheckFile_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
之后编译生成DLL文件如"test.dll",名称与System.loadLibrary("test")中的名称一致
vc的编译方法:cl -I%java_home%\include -I%java_home%\include\win32 -LD com_hode_hodeframework_modelupdate_CheckFile.c -Fetest.dll
最后在运行时加参数-Djava.library.path=[dll存放的路径]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2