# 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` 方法相同。