本来以为,修改了rpath之后,问题就解决了。结果依然说库找不到(库在同目录下)。具体来说:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/wuxi/eclipse-workspace/FontTest/lib-native/libopencv_java455.so: libopencv_ml.so.405: 无法打开共享对象文件: 没有那个文件或目录
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817)
at java.lang.Runtime.load0(Runtime.java:810)
at java.lang.System.load(System.java:1088)
at taishan.OpenCVTest.(OpenCVTest.java:49)
吾反复实验都不对,就是说找不到。怎么办?干脆吾自己加载吧。别说,错误马上不一样了。考虑到通用性,使用了一个技巧,通过双层双重循环来处理。终于成功。代码如下:
package taishan;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class OpenCVTest
{
private final static String NATIVE_DIR="/home/wuxi/eclipse-workspace/FontTest/lib-native";
private final static String LIB_PREFIX = "libopencv_";
private final static String LIB_SUFFIX_LINUX = "so";
private final static String LIB_SUFFIX_MAC = "dylib";
private static boolean isOpenCVLoaded = false;;
private static List getOpenCVFiles(final String dirName)
{
if (dirName == null)
{
return null;
}
File dir = new File(dirName);
if (!dir.exists() || !dir.isDirectory())
{
return null;
}
File[] files = dir.listFiles();
List fileList = new LinkedList();
for (File file : files)
{
String name = file.getName();
if (name.startsWith(LIB_PREFIX) && name.endsWith(LIB_SUFFIX_LINUX))
{
fileList.add(file);
}
}
return fileList;
}
private static void loadNativeOpenCV(final String dirName)
{
if (isOpenCVLoaded)
{
return;
}
List fileList = getOpenCVFiles(dirName);
if (fileList == null || fileList.size() == 0)
{
return;
}
while (fileList.size() > 0)
{
int left = fileList.size();
for (int i=0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?