mac java jni_在Mac OS X 下面编译jni动态库

本文介绍在MacOS环境中使用JNI技术编译动态链接库的过程,包括创建Java类、生成头文件、编写C代码及最终生成.jnilib文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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$

运行成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值