java调用方式
步骤一
1. vi /etc/profile
在export PATH下方加入如下代码
export LD_LIBRARY_PATH=/home/app/so/
其中/home/app/so是咱们将要调用的so库文件存在路径
2.:wq
3.source /etc/profile 使用配置生效
在docker中配置
1.vi ~/.bashrc
再文件最正方加入如下代码
export LD_LIBRARY_PATH=/home/app/so/:$LD_LIBRARY_PATH
2.:wq
3.source ~/.bashrc
步骤二
1.创建java调用jni文件
public class TestJNI{
static {
System.loadLibrary("TestJNI");
}
public interface Callback {
void callback(String msg);
}
public native int start(String str);
public native int stop(String str);
}
2.通过命令行 进入TestJNI.java所在目录,执行 javac TestJNI.java生成TestJNI.class
3.如果TestJNI无包名,执行 javah -jni TestJNI生成xx.h;
4.如果TestJNI有包名,则进行完整命名的上级文件夹,执行javah -jni 完整包名.TestJNI
如TestJNI.java package com.sc.aa.bb.cc;那么 需要进入com包的上层目录中执行命令。
5.将xx.h 交给写so库文件的同时,帮忙导出相关so库文件
6.大概率下 同事导出的so库文件名为 libTestJNI.so
7.TestJNI.java中 static块内,不能写libTestJNI.so,要使用TestJNI.so;
8.调用方式:
TestJNI test = new TestJNI();
test.start("start");
test.stop("stop");
springBoot调用方式
步骤一
同java调用方式 步骤一
步骤二
1.同java调用方式 步骤二 前7条相同;
2.TestJNI.java中,在文件名处加入@Component注解;
此步骤在生成.h文件之后再加入注解。防止javac编译时,文件报错。
3.调用方式:
@Resource
private TestJNI testJNI;
testJNI.start("start");
testJNI.stop("stop");