Windows 下java JNI方法的实现

1. 用vs2010编译器cl在控制台下编译环境配置,windows7系统,vs2010版本:

    set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
    set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;
    set LIB=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib

   注意:如果提示找不到mspdb100.dll文件,则从C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE下拷贝“mspdb100.dll,mspdbsrv.exe”这两个个文件到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin下即可。

2. JNI代码编译,具体源代码参考《Linux下 JNI的使用 》:

    2.1 创建java和JNI实现c文件,放在同一级目录下:HelloWorld.java,HelloWorldImpl.c

    2.2 编译java文件:javac Helloworld.java

    2.3 根据java文件生成.h文件"HelloWorld.h":javah -jni Helloworld

    2.4 生成动态库,注意动态库hello的名字是和java中load的动态库名字一致的,-I的环境变量值需要加双引号:

        cl -I "%java_home%\include" -I "%java_home%\include\win32" -LD HelloWorldImpl.c -Fehello.dll

        因为 %java_home% = D:\Program Files\java\jdk1.7.0_45,所以也可以写绝对路径,不用java_home环境变量:


        cl -I "D:\Program Files\java\jdk1.7.0_45\include" -I "D:\Program Files\java\jdk1.7.0_45\include\win32"  -LD HelloWorldImpl.c -Fehello.dll

    如下输出:

    E:\misc\javaJNI>cl -I "%java_home%\include" -I "%java_home%\include\win32" -LD HelloWorldImpl.c -Fehello.dll
    用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版
    版权所有(C) Microsoft Corporation。保留所有权利。

    HelloWorldImpl.c
    Microsoft (R) Incremental Linker Version 10.00.30319.01
    Copyright (C) Microsoft Corporation.  All rights reserved.

    /dll
    /implib:hello.lib
    /out:hello.dll
    HelloWorldImpl.obj
       正在创建库 hello.lib 和对象 hello.exp

   2.5 运行程序:java HelloWorld

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值