zoukankan      html  css  js  c++  java
  • 使用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文件。

  • 相关阅读:
    css 分类+选择器
    emmet语法
    程序员能力矩阵
    时间管理

    java 内存 解析
    SQL 查询优化
    2016 书单计划
    ssh框架;
    Mybatis;
  • 原文地址:https://www.cnblogs.com/widget90/p/6037711.html
Copyright © 2011-2022 走看看