java调⽤so⽂件(详细)Linux
⾸先⽣成so⽂件
vi test.h
#include<stdio.h>
void a();
void b();
void c();
vi a.c
#include"test.h"
void a()
{
printf("aaa\n");
}
vi b.c
#include"test.h"
void b()
{
printf("bbbb\n");
}
vi c.c
#include"test.h"
void c()
竖笛子入门基础教程
{
printf("ccc\n");
}
⽣成so⽂件
gcc a.c b.c c.c -fPIC -shared -o libtest.so
⽣成test.c⽂件 看看调⽤so库是否正常
#include"test.h"
int main()
{
a();
b();
c();
return0;
}
⽣成可执⾏⽂件
gcc test.c -L -ltest -o test
⽣成玩可执⾏⽂件之后 ./test 就可以输
查看环境变量
cat ect/f 查看⾥⾯是否有路径
如果有就把so⽂件放到显⽰路径下⾯
如果没有 添加 usr/lib 将so⽂件放到 usr/lib
properties是什么文件Java
it培训加盟<!-- mvnrepository/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.10.0</version>
数据库系统概论答案百度云</dependency>
java代码
这⾥都是⽆参的⽅法,如果要传参,可以根据参数对照表(最下⾯)
import Library;
import Native;
//继承Library,⽤于加载库⽂件
public interface Clibrary extends Library {
String os = Property("os.name");// 获取当前操作系统的类型
int beginIndex = os !=null&& os.startsWith("Windows")?1:0;// windows操作系统为1 否则为0
Clibrary INSTANTCE=(Clibrary)Native.loadLibrary("test",Clibrary.class);
//要调⽤的⽅法
void a();
}
public static void main(String[] args){
Clibrary instance = Clibrary.INSTANTCE;
舍曲林的功效和作用副作用instance.a();
}
select 标签
输出
参数对照表(就⼏个不⼀样)
short int long float double 都⼀样
java c
byte char
String char*
String[]char**