C手写一个多线程,供java调用
2020-12-13 16:36
标签:动态 star 测试 classname ati 复制 rar read jniexport 1、编写java代码 MyThread.java 使用jni调用一个c程序,上传至/home/mythread/com/tigger/目录下 2、编译成class程序 javac MyThread.java 3、生成头文件 javah packageName.ClassName 此命令需要在包外执行,javac命令需要在包当中执行 4、将编译好的头文件移动到MyThread.java同级目录下 5、开始编写c程序threadNew.c,并放到/home/mythread/com/tigger/ 目录下 6、将threadNew.c编译成一个动态链接库,这样在java 代码里会被load到内存 7、将编译好的.so文件移动到/home/mythread/目录下 ,并加入到path,这样jvm才能load到 进入mythread目录执行命令 8、测试 C手写一个多线程,供java调用 标签:动态 star 测试 classname ati 复制 rar read jniexport 原文地址:https://www.cnblogs.com/sheseido/p/11620917.htmlpackage com.tigger;
public class MyThread {
static {
//装载库,保证jvm在启动的时候就会装载
System.loadLibrary("TiggerThreadNative");
}
public static void main(String[] args) {
MyThread myThread=new MyThread();
myThread.start0();
}
private native void start0();
}javah com.tigger.MyThread
#include
gcc -I /usr/java/jdk1.8.0_221/include -I /usr/java/jdk1.8.0_221/include/linux threadNew.c -fPIC -shared -o libTiggerThreadNative.so -pthread
mv libTiggerThreadNative.so /home/mythread/
export LD_LIBRARY_PATH=/home/mythread/
java com.tigger.MyThread
上一篇:c# 添加数据