jna & jni

jna

 

http://www.cnblogs.com/lanxuezaipiao/p/3635556.html

http://www.cnblogs.com/softidea/p/5862484.html

https://yq.aliyun.com/articles/60758

 

jni

 

public class JniTest{

public native static int add(int x,int y); //java 代码中声明 native 方法

static {
    System.load("/opt/yizhichao/libjia.so");  //以绝对路径加载so文件
 }

public static void main(String[] args){
    System.out.println(System.getProperty("java.library.path"));
    System.out.println(add(1,1));
}

}

iZ28dn2ok1pZ:/opt/yizhichao # javah JniTest

iZ28dn2ok1pZ:/opt/yizhichao # vi JniTest

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JniTest */

#ifndef _Included_JniTest
#define _Included_JniTest
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     JniTest
 * Method:    add
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_JniTest_add
  (JNIEnv *, jclass, jint, jint);

#ifdef __cplusplus
}
#endif
#endif

 

vi myc2.c

#include <stdio.h>
#include "JniTest.h"

JNIEXPORT jint JNICALL Java_JniTest_add(JNIEnv *env, jclass jc, jint x, jint y){
    return x+y;   //简单的加法
}


 

gcc -Wall -fPIC -O2 -c -I /opt/JDK/include -I /opt/JDK/include/linux -o libjia.o myc2.c

gcc -shared -o libjia.so libjia.o

export LD_LIBRARY_PATH=.

210234_SMAL_240535.png

 

iZ28dn2ok1pZ:/opt/yizhichao # javac JniTest.java 
iZ28dn2ok1pZ:/opt/yizhichao # java JniTest
.:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2
 

210330_81Wg_240535.png

 

 

转载于:https://my.oschina.net/yizhichao/blog/1551569

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值