使用jna调用dll,jdk位数和dll位数的关系
最近在学习jna,发现dll文件能能否成功调用取决于jdk位数。
32位jdk只能使用32位的dll,64位jdk只能使用64位的dll,否则位数不对应的话报的错是
"Exception in thread "main" Java.lang.UnsatisfiedLinkError: Unable to load library 'testx64': 找不到指定的模块。"
它为什么是直接无视位数不符合的dll?仔细一想,代码搜寻dll文件时是按名字来的,那放2个同名的test.dll一个是64位的一个是32位的,自然就能搜到与自己对应的,这不就可以方便的解决兼容问题,连代码都不用改了。
但是还有一个问题,一个文件夹内文件时不能重名的,怎么放同名不同位的文件?原来jna调用dll不单会搜索项目下的dll,也会搜索在系统环境Path里各个文件,在里面填自己建两个文件分别放同名不同位的文件就行了,
例如分别在C:\Program Files和C:\Program Files (x86)文件件中创建文件夹存放相应的dll文件。
使用jna调用dll,jdk位数和dll位数的关系的更多相关文章
- java 利用jna调用c#的dll
一.需求阐述: 如果我们的项目利用c#开发,到了开发后期需要和java组进行合作,其中有一部分业务逻辑利用c#已经code completed,那么我们可能会考虑用java来调用现成的c#dll实现需 ...
- 【开发者笔记】java 利用jna调用c#的dll
一.需求阐述: 如果我们的项目利用c#开发,到了开发后期需要和java组进行合作,其中有一部分业务逻辑利用c#已经code completed,那么我们可能会考虑用java来调用现成的c#dll实现需 ...
- Atitit.java jna 调用c c++ dll的原理与实践 总结 v2 q27
Atitit.java jna 调用c c++ dll的原理与实践 总结 v2 q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...
- Atitit.java jna 调用c++ dll 的总结
Atitit.java jna 调用c++ dll 的总结 1. JNA技术解密1 1.1. JNA工作原理1 2. JNA技术难点 Java—C和操作系统数据类型的对应表1 2.1. 1 2.2. ...
- java 用JNA调用dll 参考文档
1 Java调用C语言动态库(JNA方式):回调函数.结构体数组传参.结构体数组返回 2jna结构体数组 JNA结构体数组 3JNA调用C语言动态链接库学习实践总结 4 Java 通过 JNA 调 ...
- 【翻译】JNA调用DLL
一.前言 Jna调用的示范,基本包括了Java->C基本类型的转换,指针的转换等. 不过文章是2011年的,可能后面要查看下有什么改变. 二.原文 http://www.viaboxxsyste ...
- Java 通过Jna调用dll路径问题
调试阶段 C++ dll --> window/system32C# dll --> C:\Program Files\Java\jdk1.8.0_171\bin [jdk bin] 打包 ...
- Java之Jacob调用COM接口DLL-----------------------------------dm。dll
用Java控制windows了,嗯,低层次按键模拟,可控制游戏,内存也不在话下. 一.环境介绍 1.myeclipse8.5 2.著名按键插件dm.dll 32bit.此插件实现COM接口,百度百科 ...
- 编译可供C#调用的C/C++动态链接库dll文件
编译可供C#调用的C/C++动态链接库dll文件,C语言控制台应用程序,探索生成dll过程 由于项目需求,需要公司另一个团队提供相关算法支持,是用C语言编译好的dll库提供给我们进行调用. 但是拿到d ...
随机推荐
- 加入Tomcat插件到ECLIPSE中的方法
1.下载Tomcat插件com.sysdeo.eclipse.tomcat_3.3.1.jar 下载路径http://www.eclipsetotale.com/ 2.安装插件 把下载的插件放到E:\ ...
- IOS 在控制器间跳转实现过渡动画
已经掌握了CALayer下的CATransition动画在同一个控制器下实现,但是在不同控制器间跳转又该如何实现呢? MyViewController *myVC = [[MyViewControll ...
- zTree简单使用和代码结构
1.页面使用元素代码 <input type="text" id="key" class="Side_Toput2" name=&qu ...
- ARM compiler No such file or directory
/********************************************************************************* * ARM compiler No ...
- oracle数据库解析json格式
随着非关系型数据大规模使用,以json格式产生的数据也出现在我所管理的Oracle数据库的CLOB字段里面,使用过程中就需要解析出指定键的值. 使用了最新版本 如果Oracle版本为12.1.0.2的 ...
- 腾讯优测优分享 | 探索react native首屏渲染最佳实践
腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~ 此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app ...
- mysql 把文件中的sql语句导入到mysql中
mysql -uroot -proot -Dcollege</home/wwwroot/default/data/xlxxb_2014-10-16.txt;
- boot loader:grub入门[转]
Boot Loader: Grub 在看完了前面的整个启动流程,以及核心模块的整理之后,你应该会发现到一件事情, 那就是『 boot loader 是加载核心的重要工具』啊!没有 boot loade ...
- Maven根据不同个环境打包, 获取不同的配置文件等等
http://www.cnblogs.com/tartis/p/5391079.html <project xmlns="http://maven.apache.org/POM/4.0 ...
- nginx tar.gz安装方法+简单静态文件配置
1.首先安装依赖包(依赖包有点多,我们采用yum的方式来安装) yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel ...