2015-07-01 6 views
8

Attualmente sto costruendo un progetto Web Java che utilizza Opencv per rilevare immagini simili. Ma quando corro, ho sempre arrivare questo erroreCome aggiungere OpenCV lib a Dynamic Web Project

java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: opencv_java249 java.lang.Runtime.load0(Runtime.java:806) java.lang.System.load(System.java:1086) com.hadoop.DriverServlet.doPost(DriverServlet.java:25) javax.servlet.http.HttpServlet.service(HttpServlet.java:650) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

ho anche cercare questo problema, ma ancora non riesco a trovare alcuna soluzione per il mio caso. anche io provo questo http://examples.javacodegeeks.com/java-basics/java-library-path-what-is-it-and-how-to-use/ da aggiungere al punto del percorso java.library al vaso opencv-249 in eclissi ma non ancora risolto.

Chiunque può aiutarmi? Grazie in anticipo.

+0

Sono state prese anche [questo link] (http://opencv-java-tutorials.readthedocs.io/en/latest/01-installing-opencv -per-java.html)? – Enigo

+0

Puoi mostrarmi il build.xml? – Gatusko

risposta

2

Per lavorare con opencv è necessario il file jar e il file binario. Il file JAR può essere semplicemente aggiunto dal repository locale di Maven o da qualsiasi altra variante.

File binario da aggiungere e caricare manualmente. Qualcosa di simile a questo:

private static void addLibraryPath(String pathToAdd) throws Exception{ 
    final Field usrPathsField = ClassLoader.class.getDeclaredField("usr_paths"); 
    usrPathsField.setAccessible(true); 

    //get array of paths 
    final String[] paths = (String[])usrPathsField.get(null); 

    //check if the path to add is already present 
    for(String path : paths) { 
     if(path.equals(pathToAdd)) { 
      return; 
     } 
    } 

    //add the new path 
    final String[] newPaths = Arrays.copyOf(paths, paths.length + 1); 
    newPaths[newPaths.length-1] = pathToAdd; 
    usrPathsField.set(null, newPaths); 
} 

public void init() { 
     String pathToOpenCvDll = "c:\\opencv\\"; //linux path works too 
     try { 
      addLibraryPath(pathToOpenCvDll); 
      System.loadLibrary("opencv_java320"); 
     } catch (Exception ignored) { 
     } 
    } 
} 
0

Per progetto web, il file jar lib dovrebbe essere in WEB-INF/dir lib.

assicurarsi che i vasetti nella directory sono nel classpath

Problemi correlati