尝试加载opencv时发生java.lang.UnsatifiedLinkError
我试图在使用sbt构建的Scala应用程序中使用opencv,这是我的尝试加载opencv时发生java.lang.UnsatifiedLinkError,java,scala,opencv,sbt,Java,Scala,Opencv,Sbt,我试图在使用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时遇到的错误 [error] (run-main-0) java.lang.Unsatis
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时遇到的错误
[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
编辑:
[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
在run中添加fork:=true
。我想现在它会尝试在同一个JVM中运行您的代码,因此不会应用javaOptions。编辑:
在run中添加fork:=true
。我认为现在它试图在同一个JVM中运行您的代码,因此不应用javaOptions。似乎是库名问题,错误是说opencv_java310,但您说的是opencv-310.jar,我不认为名称是一个问题,我非常确定您的路径错误或缺少jar。当缺少本机语言库时,通常会发生此错误。检查安装说明并查找需要安装的一些.so文件,或者是否需要编译二进制文件。您提供了不同的路径。看看第一个字符(/
)似乎是库名问题,说opencv_java310时出错,但你说的是opencv-310.jar,你确定应该是这样的吗/。我不认为名称是一个问题,我很确定你有错误的路径或缺少jar。这个错误通常发生在缺少本机语言库时。检查安装说明并查找需要安装的一些.so文件,或者是否需要编译二进制文件。您提供了不同的路径。看看第一个字符(/
)是否有/home/priyatham/libs/opencv-3.1.0/build/lib/libopencv_java310。那么
文件是否存在并包含我们期望的内容?应用程序是否有权访问它(权限)?/home/priyatham/libs/opencv-3.1.0/build/lib/libopencv_java310。那么
文件是否存在并包含我们期望的内容?应用程序是否有权访问它(权限)?