我正在尝试在使用 sbt 构建的 Scala 应用程序中使用 opencv,这是我的 build.sbt
name := "Marker"
version := "1.0"
scalaVersion := "2.11.8"
javaOptions in run += "-Djava.library.path=/home/priyatham/libs/opencv-3.1.0/build/lib"
这是我在sbt run
时遇到的错误
[error] (run-main-0) java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at Main$.main(Main.scala:10)
at Main.main(Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
[trace] Stack trace suppressed: run last compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) Nonzero exit code: 1
[error] Total time: 1 s, completed 13 Sep, 2016 8:40:09 PM
我修改java.library.path
的方式有什么问题
编辑:我确实将opencv-310.jar
放在Marker/lib
文件夹中
使用java -Djava.library.path="/home/priyatham/libs/opencv-3.1.0/build/lib"
编译可以,但不能使用sbt run
最佳答案
编辑:
添加fork in run := true
。我认为现在它尝试在同一个 JVM 中运行您的代码,因此不应用 javaOptions。
关于尝试加载 opencv 时出现 java.lang.UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39473494/