类加载器导致java.lang.UnsatifiedLink错误

类加载器导致java.lang.UnsatifiedLink错误,java,jsp,opencv,javacv,Java,Jsp,Opencv,Javacv,我在java web应用程序中使用opencv进行人脸检测。因此,带有imagename的图像路径被传递给名为FaceDetection.java的java类函数。 现在,当我运行它时,给出一个异常: java.lang.UnsatisfiedLinkError: Native Library C:\Users\admin\.netbeans\7.0\apache-tomcat-7.0.14.0_base\work\Catalina\localhost\SharedCrpto1\loader\c

我在java web应用程序中使用opencv进行人脸检测。因此,带有imagename的图像路径被传递给名为FaceDetection.java的java类函数。 现在,当我运行它时,给出一个异常:

java.lang.UnsatisfiedLinkError: Native Library C:\Users\admin\.netbeans\7.0\apache-tomcat-7.0.14.0_base\work\Catalina\localhost\SharedCrpto1\loader\com\googlecode\javacv\cpp\windows-x86\jniopencv_objdetect.dll already loaded in another classloader
原因可能是什么?如何克服它。请帮助

完整的StackTrace如下所示:

java.lang.UnsatisfiedLinkError: Native Library C:\Users\admin\.netbeans\7.0\apache-tomcat-7.0.14.0_base\work\Catalina\localhost\SharedCrpto1\loader\com\googlecode\javacv\cpp\windows-x86\jniopencv_objdetect.dll already loaded in another classloader
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1905)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
at java.lang.Runtime.load0(Runtime.java:792)
at java.lang.System.load(System.java:1059)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:700)
at com.googlecode.javacpp.Loader.load(Loader.java:586)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.opencv_objdetect.<clinit>(opencv_objdetect.java:91)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.opencv_objdetect$CvHaarClassifierCascade.<clinit>(opencv_objdetect.java:170)
at DetectionAndRecognition.FaceDetection.<clinit>(FaceDetection.java:56)
at org.apache.jsp.uploadwebcamimage_jsp._jspService(uploadwebcamimage_jsp.java:155)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.unsatifiedlinkerror:本机库C:\Users\admin\.netbeans\7.0\apache-tomcat-7.0.14.0\u base\work\Catalina\localhost\SharedCrpto1\loader\com\googlecode\javacv\cpp\windows-x86\jniopencv\u objdetect.dll已加载到另一个类加载器中
位于java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1905)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
位于java.lang.Runtime.load0(Runtime.java:792)
位于java.lang.System.load(System.java:1059)
位于com.googlecode.javacpp.Loader.loadLibrary(Loader.java:700)
位于com.googlecode.javacpp.Loader.load(Loader.java:586)
位于com.googlecode.javacpp.Loader.load(Loader.java:540)
在com.googlecode.javacv.cpp.opencv_objdetect.(opencv_objdetect.java:91)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:264)
位于com.googlecode.javacpp.Loader.load(Loader.java:561)
位于com.googlecode.javacpp.Loader.load(Loader.java:540)
在com.googlecode.javacv.cpp.opencv_objdetect$CvHaarClassifierCascade(opencv_objdetect.java:170)
at detection和recognition.FaceDetection.(FaceDetection.java:56)
在org.apache.jsp.uploadWebCammage\u jsp.\u jsp服务(uploadWebCammage\u jsp.java:155)上
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
运行(Thread.java:722)

已经使用其他JAR加载了相同的dll库。试着找出那个罐子。看到这个类似的问题了吗@AbdullahShoaib它说把这个类放在一个jar文件中,放在/lib/下,它将在所有战争中共享。但是如何共享呢?请帮助,我无法解决这个问题,因为整个day@AbdullahShoaib第一次运行代码时,它运行良好,这会给下一次带来问题,但我重新启动apache服务器,然后再次运行,只有第一次才能正常运行