您的位置:首页 > 编程语言 > Java开发

windows下生成jni的dll文件(java native方法)

2017-05-14 06:44 483 查看
编写java类, 类中有一个native方法。

public class Hello {
public native void sayHello();
static {
System.loadLibrary("HelloImpl");//加载生成的dll文件
}

public static void main(String[] args) {
new Hello().sayHello();
}
}


生成.class文件

执行命令: javac Hello.java


生成.h文件

执行命令: javah Hello


.h文件的内容:



编写方法的实现 HelloImpl.c



下载安装mingw_64位, 并将其安装目录配置到系统环境变量

mingw_64位最新下载地址:mingw_64位最新版下载地址

该软件的作用是在windows系统使用gcc和g++命令,对c文件和c++文件进行编译,生成.o文件, 进而生成.dll文件。64位的只能生成64位的dll文件。若要生成32位的dll文件,请下载32位的mingw.

mingw_32最新版下载地址:mingw_32位最新版下载地址

安装完后将{minw安装目录}\mingw64\bin放到path即可。

生成.o文件

执行命令: gcc -c -I"%JAVA_HOME%\include" - I"%JAVA_HOME%\include\win32" HelloImpl.c


执行完上述命令会生成HelloImpl.o文件。

生成dll文件

执行命令: gcc -Wl,--add-stdcall-alias -shared -o HelloImpl.dll HelloImpl.o


执行java命令, 验证是否成功。

执行命令: java Hello




执行命令: java -Djava.library.path=.
Hello


如果没有dll动态链接库,输出结果是:



若存在动态连接库,输出结果是:



The End.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java native jni dll mingw