2013-10-04 36 views
0

任務流程: 拍攝照片時使用的攝像頭,並保存在一個目錄下,並將其加載圖像OpenCV的檢測(面部)人臉檢測使用opencv:找不到javacv類

而在Ubuntu上運行的程序第一次,圖像沒有保存併發生異常。

錯誤1:

HTTP狀態500 -

類型異常報告

消息

description The server encountered an internal error() that prevented it from fulfilling this request. 

例外

javax.servlet.ServletException: Servlet execution threw an exception 
root cause 

java.lang.UnsatisfiedLinkError: /var/cache/tomcat6/temp/javacpp8724578391270070/libjniopencv_core.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /var/cache/tomcat6/temp/javacpp8724578391270070/libopencv_core.so.2.4) 
    java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750) 
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646) 
    java.lang.Runtime.load0(Runtime.java:787) 
    java.lang.System.load(System.java:1022) 
    com.googlecode.javacpp.Loader.loadLibrary(Loader.java:566) 
    com.googlecode.javacpp.Loader.load(Loader.java:489) 
    com.googlecode.javacpp.Loader.load(Loader.java:431) 
    com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136) 
    java.lang.Class.forName0(Native Method) 
    java.lang.Class.forName(Class.java:266) 
    com.googlecode.javacpp.Loader.load(Loader.java:453) 
    com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97) 
    java.lang.Class.forName0(Native Method) 
    java.lang.Class.forName(Class.java:266) 
    com.googlecode.javacpp.Loader.load(Loader.java:453) 
    com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85) 
    facerecognition.javafaces.TestServlet.doPost(TestServlet.java:104) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
root cause 

java.lang.UnsatisfiedLinkError: /var/cache/tomcat6/temp/javacpp8724578391270070/libopencv_core.so.2.4: libtbb.so: cannot open shared object file: No such file or directory 
    java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750) 
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646) 
    java.lang.Runtime.load0(Runtime.java:787) 
    java.lang.System.load(System.java:1022) 
    com.googlecode.javacpp.Loader.loadLibrary(Loader.java:566) 
    com.googlecode.javacpp.Loader.load(Loader.java:481) 
    com.googlecode.javacpp.Loader.load(Loader.java:431) 
    com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136) 
    java.lang.Class.forName0(Native Method) 
    java.lang.Class.forName(Class.java:266) 
    com.googlecode.javacpp.Loader.load(Loader.java:453) 
    com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97) 
    java.lang.Class.forName0(Native Method) 
    java.lang.Class.forName(Class.java:266) 
    com.googlecode.javacpp.Loader.load(Loader.java:453) 
    com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85) 
    facerecognition.javafaces.TestServlet.doPost(TestServlet.java:104) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

note注意根源的完整堆棧跟蹤在Apache Tomcat/6.0.24日誌中可用。

當程序運行時,第二次則圖像獲取保存但發生異常

錯誤2:

HTTP狀態500 -

類型異常報告

消息

說明服務器遇到內部錯誤()th阻止它履行這一要求。

例外

javax.servlet.ServletException: Servlet execution threw an exception 
root cause 

java.lang.NoClassDefFoundError: Could not initialize class com.googlecode.javacv.cpp.opencv_highgui 
    facerecognition.javafaces.TestServlet.doPost(TestServlet.java:104) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

注根源的完整堆棧跟蹤中的Apache Tomcat/6.0.24日誌是可用的。

我已經使用了try catch,但例外來了。當程序在Windows中運行時沒有問題。

回答

0

錯誤1:英特爾線程構建模塊庫,你需要有installed.Since其他本地庫被加載

libtbb.so,要麼你不沒有安裝TBB或者是不在你的usr/lib文件夾中。

錯誤2: 這是丟失的jar文件錯誤。檢查您的運行時應用程序類路徑中是否包含javacv jar文件。