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

  1. 编写java类, 类中有一个native方法。

    public class Hello {
        public native void sayHello();
        static {
            System.loadLibrary("HelloImpl");//加载生成的dll文件
        }
    
        public static void main(String[] args) {
            new Hello().sayHello();
        }
    }
  2. 生成.class文件

    执行命令: javac Hello.java
  3. 生成.h文件

    执行命令: javah Hello

    .h文件的内容:
    这里写图片描述

  4. 编写方法的实现 HelloImpl.c
    这里写图片描述

  5. 下载安装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即可。

  6. 生成.o文件

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

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

  7. 生成dll文件

    执行命令: gcc -Wl,--add-stdcall-alias -shared -o HelloImpl.dll HelloImpl.o
  8. 执行java命令, 验证是否成功。

    执行命令: java Hello

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

    如果没有dll动态链接库,输出结果是:
    错误的结果
    若存在动态连接库,输出结果是:
    正确的结果

The End.

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值