Skip to content

Instantly share code, notes, and snippets.

@fdwills
Last active August 29, 2015 13:59
Show Gist options
  • Save fdwills/10697268 to your computer and use it in GitHub Desktop.
Save fdwills/10697268 to your computer and use it in GitHub Desktop.
关于JNI

基本顺序

在需要调用的一边声明函数,只声明不实现

在需要的函数前使用native关键字定义

public class JniJikken {
  private native byte[] copy(String src);
}

不管怎样先编译生成class

使用javah生成jni的c/c++使用的头文件

javah和javac以及java在同一个执行目录下。使用javah自动生成jni的c/c++使用的头文件

脚本执行javah

javah -classpath class存在的目录 -d 生成目标文件夹啊 class名
javah -classpath classes -d %VCPP%\JniJikken JniJikken

这个例子里面根据class目录下的JniJikken.class生成在%VCPP%\JniJikken\JniJikken.h

eclipse执行

  1. 选中Extertal Tools Configration的program标签,新建
  2. Location栏中填入/usr/bin/javah
  3. Working Directory里面填入class的目录
  4. Argument里面填入javah运行命令: -jni -verbose -d "${project_loc}${system_property:file.separator}jni${system_property:file.separator}" ${java_type_name}

参考链接

jni日文说明

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment