# jnaerator-demo
**Repository Path**: who7708/jnaerator-demo
## Basic Information
- **Project Name**: jnaerator-demo
- **Description**: jnaerator 使用方法,依赖于 jna,当然可以直接使用 jna。jnaerator 只是对 jna进行了封装,无需手动写 *.h 头文件对的java,而是使用 maven-jnaerator-plugin => jnaerator:generate 直接生成。除此之外与 jna 使用方式一致。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2019-07-23
- **Last Updated**: 2023-04-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# jnaerator 使用
## pom.xml 中添加依赖
```
com.nativelibs4java
jnaerator-runtime
0.12
com.nativelibs4java
maven-jnaerator-plugin
0.12
generate
```
## 编写 config.jnaerator 文件
文件位置: `src/main/jnaerator/config.jnaerator`, 事例内容如下:
```
// 生成 java 文件名称: libvips -> LibvipsLibrary.java , vips -> VipsLibrary.java
-library libvips
// 生成包名 vips -> package vips; cn.net.springboot -> package cn.net.springboot;
-package vips -v -I$/usr/include/vips
// 运行环境使用 jna
-runtime JNA
-D__cplusplus=1
// 忽略过期方法
-skipDeprecated
// 忽略指定方法
-skipFunctions im_.*
-skipFunctions imb_.*
// /usr/local/include/vips/vips.h
// /opt/local/include/vips/vips.h
// 指定头文件
/usr/include/vips/vips.h
```
## 生成与 *.h 头对应的java文件
生成前保证有 java 及 maven 环境
```
mvn jnaerator:generate
```
生成的 java文件在: `target/generated-sources/java` 下
## 使用
```
/**
* @author Chris
* @since 1.0.0
*/
public class TestJnaeratorDllCall {
@Test
public void test() {
final String version = LibvipsLibrary.INSTANCE.vips_version_string();
Assert.assertNotNull(version);
System.out.println("Version: " + version);
}
}
```
其中 `LibvipsLibrary` 就是 `mvn jnaerator:generate` 生成的java文件。 与指定的头文件 `/usr/include/vips/vips.h` 方法相同。