网站首页 > java教程 正文
JNA
JNA(Java Native Access )
JNA框架,开源Java框架,提供一组Java工具类用于在运行期间动态访问系统本地库(native library),不需要编写任何Native/JNI代码,在一个Java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
JNA调用C/C++的过程
代码案例
DLL准备
动态链接库的创建与使用,Visual Studio 2022,保存为:d:\MyData\Dll1.dll。
Java代码
pom.xml
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.5.1</version>
</dependency>
Dll1.java
package com.what21.jna;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface Dll1 extends Library {
//1、动态库拷贝到Java工程目录下
//MyDll mydll = (MyDll) Native.loadLibrary("Dll1.dll",MyDll.class);
//2、动态库拷贝不在Java工程目录下,指定绝对路径
Dll1 dll1 = (Dll1) Native.loadLibrary("D:\\MyData\\Dll1.dll",Dll1.class);
//c或者c++中的方法
int max_number(int a, int b);
int min_number(int a, int b);
}
Main.java
package com.what21.jna;
public class Main {
public static void main(String[] args) {
int max_number = Dll1.dll1.max_number(4444, 3333);
System.out.println("max_number=" + max_number);
int min_number = Dll1.dll1.min_number(4444, 3333);
System.out.println("min_number=" + min_number);
}
}
猜你喜欢
- 2024-09-25 树莓派运行和编译Java程序,详细步骤安装JDK
- 2024-09-25 1.3java的运行原理(java安全设置已阻止自签名的应用程序运行)
- 2024-09-25 深入浅出:图形化浅析JAVA程序运行模式及虚拟机JVM
- 2024-09-25 Java编译的运行机制—程序是如何执行起来的?
- 2024-09-25 Java文件是如何运行和工作(java怎么运行的)
- 2024-09-25 JVM学习第二篇思考:一个Java代码是怎么运行起来的-下篇
- 2024-09-25 要让java代码运行起来,不能再简单做法了,人人都会
- 2024-09-25 java 性能优化:35 个小细节,让你提升 java 代码的运行效率
- 2024-09-25 java命令行编译及运行程序全过程(命令行编译java文件)
- 2024-09-25 你的应用程序会使用Java 9更快地运行吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)