JAVA JNI入门
Linux环境
Windows环境
第一步:安装c/c++编译环境
注意JDK版本,如果是64位的,编译环境也要安装的对应的64位的。
编译环境MinGW的安装
下载地址:http://mingw-w64.org/doku.php/download/mingw-builds
下载运行安装即可,注意选择64位的。
编写java类
1 | package com.ymu.javase.jni; |
生成C语言调用头文件
1 | E:\xinxiamu.github\java-core\src\main\java\com\ymu\javase\jni>D:\jdk-11.0.3\bin\ |
在HelloJNI.java所在文件目录下执行,生成的头文件在目录E:\xinxiamu.github\java-core\jni下。
生成的头文件:
1 | /* DO NOT EDIT THIS FILE - it is machine generated */ |
方法名称构成:Java_包名_类名_方法名。
编写C语言代码
拷贝头文件的c方法,并实现:
1 | // Save as "HelloJNI.c" |
生成链接库文件.dll
在mingw安装目录下,找到可执行文件g++.exe。注意,一定要在环境变量中配置好JAVA_HOME。
1 | D:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin>"g++.exe" -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -shared -o E:\xinxiamu.github\java-core\jni\hello.dll E:\xinxiamu.github\java-core\cpp\com_ymu_javase_jni_HelloJNI.c |
会在E:\xinxiamu.github\java-core\jni生成库链接文件hello.dll。
E:\xinxiamu.github\java-core\cpp\com_ymu_javase_jni_HelloJNI.c为对应c语言源文件。
把hello.dll文件拷贝到jni目录下。
执行java文件,验证是否成功调用c语言
执行HelloJNI.java类main方法,如果成功,可以看到:
