问题描述
我似乎无法通过JRuby将System.load用于dll。通话似乎成功,但似乎也无济于事。我正在尝试使用OpenCV,但我不认为这有问题。他们提供了一个OpenCV dll和一个jar文件,其中包含一些类,这些类可以调度对其的调用。
我可以从Java使用它,但不能从JRuby使用它。这是有效的Java代码(来自OpenCV示例代码):
import org.opencv.objdetect.CascadeClassifier;
import java.io.File;
public class T {
public static void main(String[] args) {
String name = new File("opencv_java440.dll").getAbsolutePath();
System.load(name);
CascadeClassifier faceDetector =
new CascadeClassifier("lbpcascade_frontalface.xml");
}
}
在这里,我认为通过JRuby应该完全一样。这不起作用:
import org.opencv.objdetect.CascadeClassifier
name = java.io.File.new('opencv_java440.dll').getAbsolutePath
java.lang.System.load name
faceDetector = CascadeClassifier.new 'lbpcascade_frontalface.xml'
运行时,这告诉我:
未处理的Java异常:java.lang.UnsatisfiedLinkError:org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0(Ljava / lang / String;)J java.lang.UnsatisfiedLinkError:org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0(Ljava / lang / String;)J org / opencv / objdetect / CascadeClassifier.java:-2
上的CascadeClassifier_0
如果我注释掉对System.load的调用,我将从Java代码中获得相同的异常(上面)。
我很迷惑。我做错了什么?
干杯, -鲍勃
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)