j2ee(servlet tomcat7) 运行opencv成功的例子
两种方法解决 java.lang.UnsatisfiedLinkError :opencv_java300 之类的错误。
方法一
因为之前都是在j2se上进行运用, 对于j2ee上怎么用opencv不是很熟悉,所以没办法,只能慢慢研究。
晚上终于成功的在测试环境运行成功,现在写一个demo文件,进行讲解
正常逻辑:加JAR包,添加NATIVE。但是在j2ee中不是,j2ee中需要在VM arguments
中添加:
-Djava.library.path=C:\opencv\opencv\build\java\x64
后面的路径就是我安装opencv的路径(实际上是解压)。
除了这一步需要注意,还有一步,就是要添加opencvjar-runtime-xxx-natives-windows-x86.jar
(64位是opencvjar-runtime-xxx-natives-windows-x86_64.jar
)至于xxx就是版本号,我是用3.0.0
的进行测试的。
所以总结起来有3点要做的:
导入opencvjar-3.0.0.jar
导入opencvjar-runtime-3.0.0-natives-windows-x86_64.jar
修改VM arguments
========2016.05.20号再次更新========
方法二
今天在研究的时候发现,实际上最后一个VM arguments
可以不用添加,不过不能用
System.loadLibrary("opencv_java300");
而要改成
Runtime.getRuntime().load(getServletContext().getRealPath("WEB-INF/lib")+"/opencv_java300.dll");
我是将opencv_java300.dll
放在了WEB-INF/lib
文件夹下的。
查看System.loadLibrary可以见到这么一句话:
The call System.loadLibrary(name) is effectively equivalent to the call Runtime.getRuntime().loadLibrary(name)
不用说我也懂了,这两个根本就是一个概念。
本文来自:j2ee(servlet tomcat7) 运行opencv成功的例子-小码农,转载请保留本条链接,感谢!