解决java调用dll报Unable to load library错误的问题

如下:

1、确保路径下有该dll文件

2、dll和jdk必须确保同样是64位或者32位。

3、地址url中不能出现“/”,必须是”\”。

4、路径一定要对。

5、如果有同样的文件名出现,要在路径后面加上

“.dll”,比如:System.getProperty(“user.dir”)+”\library”+”\PlayCtrl.dll”

补充知识:Java语言调用第三方dll文件的使用方法 System.load()或System.loadLibrary()

Java调用第三方dll文件的使用方法

public class OtherAdapter {
static
 {
  //System.loadLibrary("Connector");//载入需要调用的dll Connector.dll
  System.load("d://Connector.dll");//载入dll Connector.dll
 }

 //用native关键字修饰将被其它语言实现的方法
 //dll文件中对应的函数声明
 public native static int _PWLogon(String lpszDS,String lpszUser,String lpszPWD);
 //函数声明
 public native static void _PWLogout();
 public native static String _GetPWLastError();
 public native static String _GetPWFolders(long lParentFolderno);
 public native static String _GetPWDocuments(long lFolderno);
 public native static String _GetPWFiles(long lFolderno,long lDocno);

 //public native static String pirntStr(String msg);//函数声明
 public static void main(String[] args){
  //本地方法的调用
  int rs=_PWLogon("服务器","账号","密码");
  System.out.println("用户登录状态:"+rs);
    if(rs==1)
    {
     System.out.println("获取顶级目录:"+_GetPWFolders(0));

     System.out.println("获取父子目录:"+_GetPWDocuments(54));

     System.out.println("下载指定文件:"+_GetPWFiles(54,2));

     _PWLogout();
    }
    else
    {
     System.out.println("获取错误信息:"+_GetPWLastError());
    }
 }
}

以上这篇解决java调用dll报Unable to load library错误的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java.net.ConnectException: Connection refused问题解决办法

    Socket异常 客户端异常 java.net.ConnectException: Connection refused: connect. 该异常发生在客户端进行new Socket(ip, port)操作时,该异常发生的原因是或者具有ip地址的机器不能找到(也就是说从当前机器不存在到指定ip路由),或者是该ip存在,但找不到指定的端口进行监听.出现该问题,首先检查客户端的ip和port是否写错了,如果正确则从客户端ping一下服务器看是否能ping通,如果能ping通(服务服务器端把ping

  • Java 异常java.lang.NoSuchFieldException解决方案

    这篇文章主要介绍了Java 异常java.lang.NoSuchFieldException解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 异常描述:java.lang.NoSuchFieldException: 处理方式:将属性修改为public 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Java通过JNI 调用动态链接库DLL操作

    JNI(Java Native Interface)Java本地接口,主要作用是实现java代码与C.C++编写的代码交互. 在Android编程中,so库的访问也用到了jni技术. 理论多说无益,还是看java连接dll的实战吧.如下: 例:java中调用demo.dll文件中的 hello()方法. 1.java 1)装载dll文件 有两种方式System.load();和System.loadLibrary(); load需要全路径且需要有文件扩展名: loadLibrary是特定路径,系

  • 解决java调用dll报Unable to load library错误的问题

    如下: 1.确保路径下有该dll文件 2.dll和jdk必须确保同样是64位或者32位. 3.地址url中不能出现"/",必须是"\". 4.路径一定要对. 5.如果有同样的文件名出现,要在路径后面加上 ".dll",比如:System.getProperty("user.dir")+"\library"+"\PlayCtrl.dll" 补充知识:Java语言调用第三方dll文件的使用方

  • java调用dll方法总结

    常用的就是jni,jnative(基于jni封装了自己的jar包) 注意:java调用dll,必须dll里做了对应的处理.列如:方法名必须为_java_包名_类名_方法名 使用JNI调用dll步骤 新建一个java项目,将dll文件放入src下 配置改项目环境jre下native目录,指向src 项目jdk一定不要用eclipse自带的,用自己安装的jdk路径 按照dll里的目录顺序新建目录及类 声明跟dll里一样的方法,方法前加native关键字(注意参数类型) 代码静态块里写(不要后缀):

  • 解决RedisTemplate调用increment报错问题

    使用spring redis的increment方法时,报错: nested exception is redis.clients.jedis.exceptions.JedisDataException: ERR value is not an integer or out of range 一.INCRBY key increment INCRBY key increment介绍如下: 将 key 所储存的值加上增量 increment .如果 key 不存在,那么 key 的值会先被初始化为

  • 解决C#调用dll提示

    程序在32位操作系统上运行正常,在64位操作系统上运行读卡功能提示"试图加载格式不正确". ---------------------------------------------------------------------------- 点击项目属性,把目标平台Any CPU 设置为X86 以上这篇解决C#调用dll提示"试图加载格式不正确的程序"问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: C#中

  • Java调用dll文件的实现解析

    目录 Java调用dll文件 环境 接下来进入正文 Java调用dll文件几种常见方式 Java调用动态库需要关注的问题 一.数据类型对应关系 二.Jnative调用dll 三.JNA调用dll Java调用dll文件 近期根据C++做了一个图片质量检测的项目,目前需要在在java中进行调用,所以先在C++上生成dll文件,然后基于java调用dll文件实现功能. 环境 C++:VS2017(之前配置opencv真是要了老命) java:idea2020+jdk1.8. 注意:jdk安装的时候小

  • Java调用.dll文件的方法

    下截JNative组件 jnative.sourceforge.net/ 到这里下载JNative开源项目,我下载的是1.3.2 解压JNative-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.3.2</st1:chsdate>.zip 获得三个文件,分别是:

  • 解决java.lang.NullPointerException报错以及分析出现的几种原因

    java.lang.NullPointerException出现的几种原因: 1.字符串变量未初始化 2.接口类型的对象没有用具体的类初始化,比如: Map map // 会报错 Map map = new Map(); //则不会报错了 3.当一个对象的值为空时,你没有判断为空的情况. 4.字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常 String str = null; if(str.equals("Test")){ //这里的代码将不会被触发,因为会抛

  • 解决Java调用BAT批处理不弹出cmd窗口的方法分析

    常规调用方式:(这个肯定会弹出cmd窗口) 复制代码 代码如下: Runtime.getRuntime().exec("cmd.exe   /C   start   D:\\test.bat"); 解决不弹框只需要"start"后面加一个参数"/b"就行: 复制代码 代码如下: Runtime.getRuntime().exec("cmd.exe   /C   start   /b   D:\\test.bat"); 复制代码

  • 解决Java 部署Tomcat时使用jni和jna调用DLL文件的问题

    我的前一篇博客提到,我们公司项目的restful框架中要用到底层的DLL C++库,最后经过测试验证结果选择采用JNA方法来调DLL库. 之后基础框架在IDEA中的jetty服务中调试成功,但是在部署到Tomcat上时出现了无法加载DLL库的状况,只能现学现卖了. 一. 把DLL文件放在Tomcat下的方法: 在Tomcat中加载dll,供其它接口调用: 在Tomcat目录根下新建一个文件夹,这里就叫DLL吧,<tomcat_home>/DLL: 把需要用到的dll放入新建的DLL目录下: 编

  • 解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

    最近公司有一个公交项目,要生成报站语音,采用的是 报站前缀 + 站点名 + 报站后缀,3个MP3文件拼接的方式,拼接成一个完整的语音,且需要转码率和比特率,使用到了ffmpeg. 去网上找了一些ffmpeg相关的命令,参考: 安装命令参考 音频转码: ffmpeg -i **.mp3 -ar 8000 -ac 2 -y -b:a 32k -vol 400 **.mp3 音频拼接: //音频拼接 (1) ffmpeg -i "concat:test4.mp3|180_out.mp3" -

随机推荐