Java 调用 C++ (Java 调用 dll)
摘要: 本文原创,转载请注明地址 http://www.cnblogs.com/baokang/p/4979243.html
因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是研究了一下Java Jni的使用方法。突然发现Android Jni 使用跟这个好像(麻蛋,不就是一样的吗,但是Android中需要使用so动态链接库)。
第一步 创建Java工程,命名JniDemo,添加JniDemo.java
第二步 在Java类中添加native方法
/** * @author Baokang */ public class JniDemo{ public native static void set(int i); public native static int get(); }
第三步 使用javah命令生成头文件
在cmd中执行javah javah com.bk.jnidemo.JniDemo,生成 com_bk_jnidemo_JniDemo.h 头文件
第四步 创建DLL项目,使用Vs2010
创建Win32项目,项目名字JniDemo
第五步 拷贝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下
其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下
在项目中添加头文件目录下com_bk_jnidemo_JniDemo.h,#include <jni.h> 改为 #include "jni.h"
第六步 在Jni.cpp中实现C++方法
第七步 生成64位dll库
先修改配置管理器
然后生成64dll库
第八步 把64位dll库拷贝至Java JniDemo项目根目录下,修改JniDemo.java
注意64位dll在X64目录下,然后修改JniDemo.java如下
1 package com.bk.jnidemo; 2 3 public class JniDemo { 4 static{ 5 System.loadLibrary("JniDemo"); 6 } 7 public native static void set(int i); 8 public native static int get(); 9 10 public static void main(String[] args) { 11 set(100); 12 System.out.println(get()); 13 14 } 15 }
第九步 运行,搞定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具