黑马程序员技术交流社区

标题: 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