java通过jni调用c库
来源:互联网 发布:西门子200plc编程实例 编辑:程序博客网 时间:2024/06/11 17:39
1.编写带有native声明的方法的java类
public class Hello{ // java调用c实现的动态库方法时,需在java类中声明为 native public native void display(); static { // 打印java引用库文件时会搜索的位置,目的是将c生成的动态库放到这 System.out.println(System.getProperty("java.library.path")); // 加载库文件,注意库名一定要是 libxxx.so格式,此处xxx为hello System.loadLibrary("hello"); } public static void main(String[] args) { new Hello().display(); }}
2. 编译Hello.java文件生成java.class
javac Hello.java
3. 为native声明的方法生成c样式的头文件,Hello.h
javah Hello4. 用c实现该头文件中的函数 hello.c
#include <jni.h>#include "Hello.h"JNIEXPORT void JNICALL Java_Hello_display (JNIEnv *env, jobject obj){ printf("hello world!\n");}
5. 编译hello.c生成动态库libhello.so
cc printHello.c -I/usr/java/jdk1.8.0_11/include/ -I/usr/java/jdk1.8.0_11/include/linux -shared -fPIC -o hello.so注意: -I用于制定jni.h的位置及其引用的其他文件的位置
6. 将libhello.so放到 java.library.path 任意目录
sudo mv libhello.so /usr/lib
7. 运行调用c库的java程序
java Hello
效果如下:
0 0
- java通过jni调用c库
- java通过jni调用C程序
- Java通过JNI调用C/C++函数
- JAVA通过JNI调用C函数Demo
- Android C 通过JNI 调用JAVA
- Java通过JNI调用C语言
- Java 通过 JNI 调用 C/C++ 类库
- Java通过jni调用c语言方法
- JNI小程序:Java通过JNI调用C程序
- 通过JNI调用C/C++库
- Java通过JNI调用DLL动态库
- JAVA通过JNI调用本地C语言方法
- JAVA通过JNI调用本地C语言方法
- JAVA通过JNI调用本地C语言方法
- 10,JAVA通过JNI调用本地C语言方法
- JAVA通过JNI调用本地C语言方法
- JAVA通过JNI调用本地C语言方法
- JAVA通过JNI调用本地C语言方法
- MapReduce(十二): Map和Reduce阶段数据合并的处理
- 字符串循环右移
- 毕业后就职第二月 碎碎念(一)
- C# 查找EXCEL的两种方法比较
- linux 建立设备文件
- java通过jni调用c库
- Search for a Range
- c++ primer(第五版)笔记 第九章 顺序容器(2)
- LDA-math-MCMC 和 Gibbs Sampling
- 黑马程序员——流程控制语句
- Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
- Zabbix如何监控Windows机器
- Prefab动态修改无效的解决方案
- sprintf,你知道多少?