ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java调用C或者C++动态库dll

2022-04-11 12:35:32  阅读:174  来源: 互联网

标签:java MyDll jar C++ dll jna


java调用C或者C++动态库dll,本文章使用的是IntelliJ IDEA Community Edition 2021.2.3版本测试的

1、新建项目 linjie.demo,添加类HelloLinjie

 

 

2、选择项目---新建----目录,输入libs,回车,新建根目录下libs成功,然后把需要的jar包-jna.jar拷贝到libs中

 

3、然后导入本地jna.jar Jar 包(java调用C或者C++动态库dll 需要的jar包---jna.jar)

选择  文件--项目结构

 

 选择  项目结构-----库--- + 选择java,然后选择路径中的libs找到需要添加的jar包,选中,点击应用,确定

 

 

 选择  项目结构-----模块--- + 选择需要添加的jar包,选中,点击应用,确定

 

 

 

4、选择src ,右键新建java类,输入MyDll,选择接口,然后引用jna.jar中api,import com.sun.jna.Library,import com.sun.jna.Native,加载需要的DLLT.dll(java调用C或者C++动态库dll,64位的dll,32位的需要安装对应的jre即可)

package linjie.demo;
import com.sun.jna.Library;
import com.sun.jna.Native;

/**
* 功能简述
*java调用C或者C++动态库dll,64位的dll
* @author yangsx
* @version 1.0.0
* @date 2021-09-07
*/
public interface MyDll extends Library {
//1、动态库拷贝到Java工程目录下
//MyDll mydll = (MyDll) Native.loadLibrary("DLLT.dll",MyDll.class);
//2、动态库拷贝不在Java工程目录下,指定绝对路径
MyDll mydll = (MyDll) Native.loadLibrary("G:\\测试\\64\\DLLT.dll",MyDll.class);
int add(int a,int b);//c或者c++中的方法
}

 

5、main方法中内容如下:

   public static void main(String[] args) {
        System.out.println("java调用C或者C++动态库dll,64位的dll");
        int add = linjie.demo.MyDll.mydll.add(1, 2);
        System.out.println("MyDll.mydll.add:"+add);
        System.out.println("java调用C或者C++动态库dll,64位的dll");
    }

6、运行如下:

 

 

 

标签:java,MyDll,jar,C++,dll,jna
来源: https://www.cnblogs.com/1175429393wljblog/p/16129423.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有