前言
在使用dcm4che-tool-dcm2jpg可以转换图片,这其中就使用到了opencv,需要windows版本的.dll文件和linux中的.so。在windows上开发,使用比较顺利,直接将对应版本的.dll文件放到jdk的bin目录下即可,但是在centos中却无法找到,出现错误提示:java.lang.UnsatisfiedLinkError: no opencv_java in java.library.path。
解决
首先分析问题所在,是不是所用的centos系统的.so文件没有放到对应的java.library.path下,所以写了个测试jar
package src.main;
/**
* @author zhy
*/
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
System.out.println("执行了-----------------------");
System.loadLibrary("opencv_java");
System.out.println("执行成功----------------------");
}
}
编译此文件,博客中有提到,然后在centos系统中运行,得到java.library.path的路径,确认无误。这时候考虑到版本等其他因素,也都进行了测试,还是没有解决。再次翻阅源码,发现了问题所在。
运行这个之后之前的 opencv_java名字会被拼接为libopencv_java,所以导致无法加载此文件。找到原因后将文件名重新修改后,运行一切正常。