java调用c++
来源:互联网 发布:阿里云百度云差距 编辑:程序博客网 时间:2024/06/15 01:53
JNI.java
package xunw;public class JNI{ //使用JNI的关键字native //这个关键字决定我们那些方法能在我们的C文件中使用 //只须声明,不必实现 public native void display(); public native double sum(double x,double y); static { System.out.println(System.getProperty("java.library.path")); System.loadLibrary("xunw_JNI"); } public static void main(String[] args) { new JNI().display(); System.out.println(new JNI().sum(2.0, 3.0)); }}javac xunw/JNI.java 并 javah xuw.JNI
编译后会生成xunw_JNI.h xunw_JNI.c 编辑xunw_JNI.c
#include <jni.h>//导入我们需要实现的本地方法#include "xunw_JNI.h"#include <stdio.h> JNIEXPORT void JNICALL Java_xunw_JNI_display(JNIEnv *env, jobject obj){ printf("Hello World JNI!!"); return;} JNIEXPORT jdouble JNICALL Java_xunw_JNI_sum(JNIEnv *env, jobject obj, jdouble a, jdouble b){ return a + b;}
将xunw_JNI.c 编译为动态链接库lib***.so 注意命名规则
gcc xunw_JNI.c -I /home/xunw/jdk1.8.0_05/include/ -I /home/xunw/jdk1.8.0_05/include/linux/ -fPIC -shared -o libxunw_JNI.so
libxunw_JNI 与System.loadLibrary("xunw_JNI")保持一致
运行程序主程序 JNI
java -Djava.library.path=~/workspace/LearnJava/src/ -classpath . xunw.JNI //error 不能用~
java -Djava.library.path=/home/xunw//workspace/LearnJava/src/ -classpath . xunw.JNI //ok
0 0
- java调用C语言
- java调用c
- 实现java调用c
- Java调用C/C++
- C调用JAVA
- C/C++调用Java
- java调用C
- java调用c、c++
- Android C调用Java
- Java调用C JNI
- java调用c程序
- Java调用C/C++
- Java调用C语言
- android java 调用 c
- java 调用C/C++
- jni c调用java
- C调用Java
- Java调用C语言
- 温州商人有哪些生意经?
- java 实现输入一个字符串,打印出其中所有的数字
- python decorator(装饰器)
- vrml文件的使用
- 旋转卡壳:cdoj942
- java调用c++
- 黑马程序员(十)
- 鼠标屏幕取词技术的原理和实现
- HTML5 postMessage 和 onmessage API 详细应用
- 第二次使用回调
- 理解Bellman Equation
- Ubuntu 12.04下安装Oracle Express 11gR2
- EF:插入记录失败,提示当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值
- 2:约瑟夫问题