我进行了一次硒测试,当它完成时会对OpenCV进行一些操作。使用IntelliJ IDEA它工作正常,操作正确,但是当我尝试通过命令行执行时(Jenkins在不久的将来使用),我得到上面提到的错误:
" Java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java320"
我在这里阅读了其他问题,并且我已经将java.library.path设置为jar和dll文件所在的路径,但错误仍然出现,而且我已经用完了想法。
你能帮我吗?
谢谢!
答案 0 :(得分:4)
请在下面找到一个工作代码段。你需要适应自己的需求。
假设以下文件结构
libs\opencv_java320.dll
pom.xml
src\test\java\sub\optimal\OpenCVTest.java
pom.xml - 测试的部分
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>-Djava.library.path=${project.basedir}/libs/</argLine>
</configuration>
</plugin>
</plugins>
</build>
<强>子\最佳\ OpenCVTest.java 强>
package sub.optimal;
import org.junit.Test;
public class OpenCVTest {
@Test
public void someOpenCVTest() {
System.out.printf("java.library.path: %s%n",
System.getProperty("java.library.path"));
System.loadLibrary("opencv_java320");
}
}
运行测试
mvn compile test
<强>输出强>
...
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running sub.optimal.OpenCVTest
java.library.path: X:\develop\opencv-demo/libs/
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: ...
...
答案 1 :(得分:2)
如果您使用的是STS / Eclipse或任何IDE,请按照以下步骤解决您的 unsatisfiedlinkerror-no-opencv-java320 错误。
窗口->首选项->用户库->新建->创建新的库,如附件图像
注意:-创建新库时,jar位置和本机库位置(opencv / build / java / x64)应该与此完全相同。
答案 2 :(得分:1)
如果您正在使用IntelliJ IDEA,则应将OpenCV库添加为本机库位置。
File
&gt; Project Structure
Modules
,然后选择Dependencies
标签+
图标以添加依赖项。然后选择Add JARS or directories
选项。然后浏览到安装OpenCV的路径并选择build/bin/opencv-***.jar
(或者在某些情况下使用build / java / opencv - ***。jar)并单击Open
。
※如果你找不到那个jar文件。我预测你忘了构建OpenCV repo。参考此introduction
它将在窗口中显示为依赖项。现在,我们还必须添加本机库位置。为此,双击opencv - ***。jar
+
图标以添加本机库位置。build/lib
(在某些情况下,它将是build/java/x64
)。现在点击Open
。现在,您可以使用System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
按预期加载库
参考:Aadam的How to set-up OpenCV in IntelliJ IDEA
PS:您还可以在java.library.path
-Djava.library.path={PATH_T0_LIBRARY}
答案 3 :(得分:1)
这对我有用。我在Mac上使用intellij
294 // installments.amount
undefined // amount
undefined // typeof installments.amount
undefined // typeof amount
和依赖性
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Test {
public static void main(String[] args){
//System.loadLibrary(Core.NATIVE_LIBRARY_NAME); - REMOVE THIS
nu.pattern.OpenCV.loadShared(); //add this
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
}
}
答案 4 :(得分:0)
这对我来说是intellij Idea的工作:
它奏效了!希望这会有所帮助:)