JNI本地方法实例

C/C++编译器除了可以创建机器代码可执行文件以外,也可以创建共享库文件。接下来,我将使用Java的JNI来写一个Java本地代码(java native interface). 以windows平台为例,介绍如何创建本地方法。

使用windows平台的编译器,我可以是用的工具:visual studio command prompt工具cl.exe

1. 编写Java代码并编译成字节文件(command: java Happy.java)

public class Happy{
    public native void printText ();
    static{
        System.loadLibrary ("happy");   /* Note lowercase of classname! */
   }
   public static void main (String[] args){
        Happy happy = new Happy ();
        happy.printText ();
   }
}
2. 生产C语言的头文件,使用Java 提供的工具Javah。

    javah Happy
3. 编写 HappyImp.c文件,代码如下:

#include <jni.h>      /* Standard native method stuff. */
#include "Happy.h"         /* Generated earlier. */
#include <stdio.h>        /* Standard C IO stuff. */
void Happy_printText (struct HHappy *this){
    puts ("Happy New Year!!!");
 } 
4. 生产dll文件。在DOS下,输入以下命令:

cl-I"C:\Program Files\Java\jdk1.6.0_35\include" -I"C:\ProgramFiles\Java\jdk1.6.0_35\include\win32" -LD HappyImp.c -FeHappyImp.dll

如果报错,比如“can't open file <stdio.h>”,还有什么不能呢个发现什么LIB文件等。解决方法是执行以下VC的环境设置bat脚本。e.g.

D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat

D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat

最好是在DOS环境下执行,可以达到我们的目的。

5. 执行Java代码:

java Happy


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值