繁体   English   中英

Java Native Interface加载dll文件

[英]Java Native Interface loading dll file

我正在尝试在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,并且运行良好,还请记住使用发行版而不是调试版。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM