Java Native Interface加载dll文件(示例代码)

栏目: java · 发布时间: 2021-04-13

简介  这篇文章主要介绍了Java Native Interface加载dll文件(示例代码)以及相关的经验技巧,文章约964字,浏览量201,点赞数5,值得参考!

我想在java程序中加载DLL文件。我没有收到错误。但是,未加载DLL库。这是代码片段:

final class TJLoader {
  static void load() {
    //System.loadLibrary("@TURBOJPEG_DLL_NAME@");
      String path = "C:/Eclipse2/mozpeg-master/bin";
      try {
            System.out.println("before loading");
            //System.loadLibrary("cygjpeg-62");
            System.load("C:/image_test/mozjpeg-master/.libs/cygjpeg-62.dll");

            System.out.println("2");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        System.out.println("exception="+e);
    }catch(Error e){
        System.out.println("error="+e.getMessage());
    }
  }
}

在控制台上,我将“加载前”。但是,之后没有任何内容打印出来,程序突然结束。请注意DLL是一个62位的库,我使用62位JVM

答案

DLL加载失败实际上会产生java错误。尝试调用本机方法时会产生本机错误。当程序无法加载DLL时,我收到了像“找不到库”这样的java错误。您应确保您的DLL是64位版本,并尝试避免使用Cygwin。我使用Visual Studio来构建DLL,它工作正常。还要记住采用发行版而不是调试版。


以上就是本文的全部内容,希望对大家的学习有所帮助,版权归原作者或者来源机构所有,感谢作者,如果未能解决你的问题,请参考以下文章。

java native interface JNI 调用Java方法(示例代码)

android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )(示例代码)

JNI基础(示例代码)

动态加载框架DL分析(示例代码)

openfire 部署后报错: java.lang.IllegalArgumentException: interface xx is not visible from class loader(示例