Java使用JNA调用C文件

1.构建项目

准备最简单的maven项目,结构如下:
Java使用JNA调用C文件_第1张图片
引入依赖:

<dependency>
      <groupId>net.java.dev.jna</groupId>
      <artifactId>jna</artifactId>
      <version>5.3.1</version>
    </dependency>

2.构建c文件和so文件

在resource目录下构建:

 #include 
 test() {
  printf("hello world\n");
}

编译生成so:

gcc test.c -fPIC -shared -o test.so

3.编写解析类和测试类

package org.linx;

import com.sun.jna.Library;
import com.sun.jna.Native;

public interface CLibrary extends Library {
    CLibrary INSTANCE = Native.loadLibrary("test.so", CLibrary.class);

    /**
     * 初始化SDK 注意:调用SDK其他接口前必须先调用此接口!
     */
    void test();

}

package org.linx;

import junit.framework.TestCase;
import org.junit.Test;

public class CLibraryTest extends TestCase {

    @Test
    public void testTest() {
        CLibrary.INSTANCE.test();
    }
}

tips:如果要把该项目打包为jar供其他项目使用,需要将so文件放置在特定目录下

在这里插入图片描述

你可能感兴趣的:(java,c语言,开发语言)