java加载dll代码

static {
    System.loadLibrary("projectForJava");
}

使用如上方法加载本地 dll文件。

 

一般会出现两种错误:

1.java.lang.UnsatisfiedLinkError: no projectForJava in java.library.path
2.java.lang.UnsatisfiedLinkError: E:\dll\C++\cim6d-data-processing\projectForJava.dll: Can't find dependent libraries

 

第一种错误为 没有加载到指定的 dll文件,该配置可以百度搜索 java.library,path 设置进行配置。

通用方式,将projectForJava.dll 文件放入到 ~/jdk/bin (本机器所装jdk安装目录下的bin)中。该目录默认包含在 java.library.path变量中,可以直接使用。

还有则可以在JVM启动时,使用 -D参数进行设置 java.library.path 如:-Djava.library.path=E:\dll\C++\cim6d-data-processing

另外,可以直接将 dll文件放入项目中的相对路径中

 

第二种错误为 projectForJava.dll 不仅仅使用这单独一个dll文件,其中会调用其他dll文件,可以通过 dependency-walker 查看该dll依赖哪些其他的dll文件,如下。

 

java dll unsigned参数 java dll不能运行_jvm

则表示 该projectForJava.dll 依赖以上几个报错的dll文件,提示系统无法加载到该文件,下载这两个dll 文件放入到windows/system32目录下即可。

这样就可以在使用projectForJava.dll 的时候加载到其多依赖的dll文件了。