登录
首页 >  文章 >  软件教程

Windows上Java通过JNI调用C++库的实战教程

时间:2025-05-27 18:36:34 461浏览 收藏

在Windows平台上,Java程序通过JNI(Java Native Interface)调用C++库的实现方法是本文的重点。文章详细介绍了如何使用Visual Studio编译64位的DLL文件,并强调了选择多线程调试(/MTd)选项的重要性,这有助于理解静态链接和动态链接的区别。静态链接将运行库集成到可执行文件中,而动态链接则需要运行库的支持。文章还提到了Eclipse工程搜索路径的建立,提供了相关的参考链接,旨在帮助开发者更好地实现跨平台的JNI调用。

Windows端的java程序使用jni调用C++编写的库,原来实现过在Android和Linux端通过JNI调用C++程序,在Windows端没有实现过,这里记录下几个关键的点;

1、64位的dll工程,现在少有32位的平台,所以需要通过VisualStudio编译出64位的dll,注意属性页->C/C++->代码生成/运行库/选择多线程调试(/MTd),参考Linux编译选项的静态链接和动态链接的思路就比较好理解了:

静态链接:多线程(/MT)、多线程调试(/MTd)

动态链接:多线程DLL(/MD)、多线程调试DLL(/MDd)

动态链接为D,静态链接为T。两者的区别在于,静态链接将程序所依赖的运行库集成到了可执行文件中,可执行文件运行时不再需要运行库;动态链接没有把程序所依赖的运行库集成到可执行文件中,可执行文件运行时需要运行库。 

推荐选择/MTd, 这样Java程序就不需要重复链接一些依赖的三方库,或者自己写的静态库;我们实现的场景就是通过一个dll工程封装多个lib库的工程;

2、注意Eclipse工程搜索路径的建立:参考https://blog.csdn.net/pxhero2012/article/details/52926082

Windows端的java程序使用jni调用C++编写的库

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>