mac ox jni 编程

  mac os x编译jni动态库和linux类似,但是有些地方不太一样,下面简单的介绍一下。


1. 编写java文件


public class HelloWorld

{

   public native String printHelloWorld();


   static{

       System.loadLibrary("helloworld");

   }


  public static void main(String[] args)

  {

       HelloWorld h = new HelloWorld();

       String str = h.printHelloWorld();

       System.out.println(str);

  }


}


2.  javac HelloWorld.java 生成HelloWorld.class文件


3. javah HelloWorld 生成HelloWorld.h 头文件


4. 编写HelloWorld.c文件


#include "HelloWorld.h"


JNIEXPORT jstring JNICALL Java_HelloWorld_printHelloWorld

 (JNIEnv *env, jobject obj)

{

   return (*env)->NewStringUTF(env, "Hello World from JNI !");

}

   

5 编译HelloWorld.c  

gcc -I/System/Library/Frameworks/JavaVM.framework/Headers -c HelloWorld.c

编译完成后,会生成HelloWorld.o文件


注意:/System/Library/Frameworks/JavaVM.framework/Headers 这个是你的jdk头文件的目录,主要是编译的时候要查找jni.h头文件。


6  将HelloWorld.o打包成动态库

gcc -dynamiclib -o libhelloworld.jnilib HelloWorld.o

可以看出在mac下面,不是生成so文件,而是.jnilib文件。


7 运行

java HelloWorld


hejinlai_iMac:jni hejinlai$ java HelloWorld

Hello World from JNI !

hejinlai_iMac:jni hejinlai$


运行成功!




本文出自 “移动开发” 博客,请务必保留此出处http://ikinglai.blog.51cto.com/6220785/1212481

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值