OSX上进行JNI开发的流程及命令
来源:互联网 发布:如何获取阿里云优惠码 编辑:程序博客网 时间:2024/05/24 00:47
1. 声明native方法
HelloWorld.java
class HelloWorld { private native void print(); public static void main(String[] args) { new HelloWorld().print(); } static { System.loadLibrary("HelloWorld"); } }
2. 编译Java文件
$ javac HelloWorld.java会生成HelloWorld.class文件。
3. 生成native方法的头文件
$ javah -jni HelloWorld会生成HelloWorld.h文件。
4. 实现本地方法
HelloWorld.c
#include <jni.h>#include <stdio.h>#include "HelloWorld.h"JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj){ printf("Hello World!\n"); return;}
5. 编译生成动态库文件
在OSX下为jnilib文件。
$ gcc -I/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/include/ -I/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/include/darwin/ -c HelloWorld.c$ gcc -dynamiclib -o libHelloWorld.jnilib HelloWorld.o会生成HelloWorld.o和libHelloWorld.jnilib文件。
6. 执行
$ java -Djava.library.path=. HelloWorldHelloWorld!
7. 参考:
Windows、Linux、Mac OSX编译jni动态库
javah生成带有包名的头文件
(完)
阅读全文
0 0
- OSX上进行JNI开发的流程及命令
- JNI的开发流程
- Android--JNI的开发流程
- jni的简便开发流程
- Android JNI 开发的流程
- MAC 上 OSX 安装成usb启动盘的命令
- jni 的 操作流程及简介
- PHP系统之一osX上的mamy安装及phpStorm
- JNI笔记 JNI开发流程
- JNI与NDK的开发流程
- 第八篇:jni的开发流程规范
- JNI和NDK编程(一)JNI的开发流程
- OSX上配置emacs的C/C++开发环境
- 在OSX上开发UNITY本地插件的经验分享
- Android Studio进行JNI开发的操作过程
- android jni 开发流程
- Android JNI开发流程
- jni开发流程
- 关于sort函数的几种用法
- 防止vc6.0运行代码后闪退
- 给定任意数组获取任意连续的项求和的最大值,并输出新的数组
- 用Python建设企业认证和权限控制平台
- 数据结构实验之查找三:树的种类统计
- OSX上进行JNI开发的流程及命令
- caffe转换tensorflow工具caffe-tensorflow
- 第四章 ALDS1_3_A:Stack 栈
- svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
- 12月23日 周六
- SpringBoot第一个示例
- 关于MAC下安装virtual box linux 系统-主机与虚拟机互通问题
- navicat for mysql 远程连接数据库时出现2003-Can't connect to Mysql on '主机名'(10061)解决方法
- svn清理失败的解决方法