为什么从JRuby调用时System.load失败?

问题描述

我似乎无法通过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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...