java - 如何加载原生库来玩框架

标签 java opencv playframework-2.0 playframework-2.2

我一直在尝试开发一个 Play Framework 应用程序。我在此应用程序中使用 opencv(.jar + native 库)。当我尝试运行应用程序时

play start

命令应用程序运行良好且完美。当尝试使用

play run

它需要访问 opencv 方法,它会收到运行时错误

java.lang.UnsatisfiedLinkError: org.opencv.highgui.Highgui.imread_0(Ljava/lang/String;I)J
    at org.opencv.highgui.Highgui.imread_0(Native Method)
    at org.opencv.highgui.Highgui.imread(Highgui.java:299)
    at com.allspark.scanners.LabelImScanner.readLabel(LabelImScanner.java:39)
    at com.allspark.controllers.imageController.uploadLabel(imageController.java:55)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$19$$anonfun$apply$19.apply(routes_routing.scala:289)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$19$$anonfun$apply$19.apply(routes_routing.scala:289)

然后我尝试在生产模式下运行应用程序,然后一切正常。 我需要知道如何加载 native 库以在开发模式下运行应用程序。 这个问题已经在下面讨论过: https://groups.google.com/forum/#!topic/play-framework/A3cL3dkD70I https://github.com/playframework/playframework/issues/2212 How to include native library (JNI) in play 2.1 RC2?

但不幸的是,对于开发模式应用程序没有任何作用。 我正在使用 play Famework 2.2.0 和 opencv-246。如果有人能够提供支持,那将是很大的帮助。谢谢。 感谢您的帮助

最佳答案

有两种方法:

1. 在你的 play 项目中创建一个/lib 文件夹,然后 play clean 并编译(SBT 会处理所有事情)

2.

cp  opencv-2412.jar /your-play-project/target/native_libraries/64bits/
cp  ibopencv_java2412.dylib  /your-play-project/target/native_libraries/64bits/

然后清理并编译

关于java - 如何加载原生库来玩框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22962013/

相关文章:

Java,扫描大文件,findWithinHorizo​​n(p, 0) 抛出异常 java.lang.StackOverflowError

java - 正则表达式中的问号 : difference between 'Pattern.compile("\"title\":\"(.*?)\"") ;' and ' Pattern. 编译 ("\"标题\":\".*\"");'

c++ - OpenCV 2.3 编译问题 - undefined reference - Ubuntu 11.10

matlab - 图像处理中的数字识别算法/准则

playframework-2.0 - 如何仅更新/保存更改的字段

scala - 如何将checkstyle和PMD集成到Play框架的Build.scala文件中

java - Java中注释的元素可以是不同注释的数组吗?

python-3.x - Python3.6向cv2处理的视频添加音频

java - Play框架的模板引擎中是否有 "instanceof"功能?

java - 如何在Struts中包含多个消息资源?