So verpacken Sie opencv + java in einem Jar

8

Ich benutze Opencv 2.4.5 mit Java für eine Weile beim Erstellen einer Anwendung und möchte nun die App verteilen. Die Bibliothek wird folgendermaßen geladen:

%Vor%

was gut funktioniert. Beim Exportieren funktioniert es jedoch nicht, wenn es vom Jar ausgeführt wird:

%Vor%

Die Datei opencv_java245.jar ist als Benutzerbibliothek enthalten, mit der eine native Datei (libopencv_java245.dylib) verbunden ist. Wenn ich das ausführbare jar ausführe, das aus Eclipse generiert wurde, bekomme ich den UnatisfiedLinkError unten, obwohl Dinge in Eclipse kompilieren / laufen.

%Vor%

Weiß jemand eine einfache Art, OpenCV in das Glas zu verpacken?

Update: Ich habe jetzt alles erschöpft. Ich kann die Bibliothek zu meinem Build-Pfad hinzufügen (und nicht System.loadLibrary verwenden) und das funktioniert in Eclipse, aber nicht, wenn es im Jar verpackt ist. Ich habe alles versucht. Ich überprüfte auch den Typ der dynamischen Bibliothek, die ich laden möchte - es ist

%Vor%

was scheint, als sollte es gut funktionieren. Ich habe -D64 und -D32 verwendet, um zu testen und das gleiche Ergebnis mit beiden zu bekommen.

    
alistair 16.08.2013, 09:01
quelle

1 Antwort

10

Wie Steven C sagte, war es wie in Extrahiere und lade DLL von JAR und auch in einem Fehlerbericht . Ich war etwas unwissend, wie man Dylibs benutzt und versuchte, mit einem OpenCV-Tutorial die eine "user library" verwendet haben, um ein jar hinzuzufügen und dann die native dylib hinzuzufügen. Aus irgendeinem Grund wurde das Laden von Ressourcen auch bei Verwendung von "/" aus dem Verzeichnis src geladen, nicht aus dem Stammverzeichnis meines Projekts (was in einem Testprojekt der Fall war).

Für diejenigen, die versuchen, das Gleiche zu tun, hier ist ein Code zu helfen:

%Vor%     
alistair 13.09.2013, 07:23
quelle