Java Native Interface加载dll文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Native Interface加载dll文件相关的知识,希望对你有一定的参考价值。
我想在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加载dll文件的主要内容,如果未能解决你的问题,请参考以下文章
Java固有接口JNI(Java Native Interface)之HelloWorld
Java Programming Tutorial Java Native Interface (JNI)
Mac下Java JNI (java native interface)调C
Java Native Interface(JNI)从零开始详细教程