JNI学习(1)——生成对应的头文件

简介: JNI学习(1)——生成对应的头文件

一、确保安装了JDK环境


输入以下命令检查


java
javac


二、 软件版本


  • JDK8
  • OS: Windows10


三、编写java文件


编写JniHelloWorld.java文件


package cn.hangtian.com.modular.web.utils;
public class JniHelloWorld {
    /**
     * native关键字,表明这个方法使用java以外的语言实现
     */
    public native void printHelloWorld(String something);
    static {
        //System.loadLibrary("hello")这句代码,它是在静态初始化块中定义的,系统用来装载hello库,
        //这就是我们在后面生成的hello.dll
        System.loadLibrary("hello");
    }
    public static void main(String[] args) {
      //运行后,控制台打印出 hello world  
        new JniHelloWorld().printHelloWorld("hello world");
    }
}

四、编译java文件


 javac -encoding utf-8 JniHelloWorld.java

生成对应的字节码文件,目录根据包名自动生成,如下图所示。

image.png


五、生成头文件


javah -o JniHelloWorld.h  -jni -classpath . cn.hangtian.com.modular.web.utils.JniHelloWorld

 javah -o JniHelloWorld.h  -jni -classpath . cn.hangtian.com.modular.web.utils.JniHelloWorld

可以指定生成的头文件的名字,也可以去掉-o属性,这样就会自动生成如下格式的头文件。

cn_hangtian_com_modular_web_utils_JniHelloWorld.h


生成的文件内容为:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class cn_hangtian_com_modular_web_utils_JniHelloWorld */
#ifndef _Included_cn_hangtian_com_modular_web_utils_JniHelloWorld
#define _Included_cn_hangtian_com_modular_web_utils_JniHelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     cn_hangtian_com_modular_web_utils_JniHelloWorld
 * Method:    printHelloWorld
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_cn_hangtian_com_modular_web_utils_JniHelloWorld_printHelloWorld
  (JNIEnv *, jobject, jstring);
#ifdef __cplusplus
}
#endif
#endif
相关文章
|
6月前
|
存储 Java C++
[NDK/JNI系列02] JNI的设计原理与数据类型
[NDK/JNI系列02] JNI的设计原理与数据类型
47 0
[NDK/JNI系列02] JNI的设计原理与数据类型
|
6月前
函数库头文件问题
函数库头文件问题
|
编译器 程序员 C++
C头文件
C头文件。
35 0
|
6月前
|
编译器 C语言
c头文件
c头文件
48 0
|
编译器 程序员 C++
C 头文件
C 头文件。
28 0
|
6月前
|
编译器 程序员 C++
头文件
头文件。
37 2
|
Java Android开发 iOS开发
|
Java Unix Linux
JNI学习(0)——关于JNI
JNI学习(0)——关于JNI
139 0
JNI学习(0)——关于JNI
|
IDE Java 开发工具
JNI学习(2)——生成动态链接.dll文件
JNI学习(2)——生成动态链接.dll文件
163 0
JNI学习(2)——生成动态链接.dll文件
|
C++
c++ 常用头文件
c++ 常用头文件
187 0