Ich habe ein kleines Tool programmiert, das ein Bild aufnimmt und testeract verwendet, um daraus Daten zu extrahieren. Ich habe Java in Netbeans auf einem 64-Bit-Windows-7-Rechner verwendet. Bis jetzt kompiliert das Programm tadellos und macht, was ich will - einschließlich tesseract -. Aber wenn ich versuche zu reinigen & das fertige Projekt in Netbeans bauen und versuchen, die erzeugte laufen .jar im .cmdTess4j und NetBeans Java Programm - Probleme "AWT-Eventqueue-0" unzufriedener-link-error
java -jar "..\Users\Marv\Scantool.jar"
ich die folgende Fehlermeldung erhalten:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: The module can not be found
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.Native.open(Native.java:1759)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Library$Handler.<init>(Library.java:147)
at com.sun.jna.Native.loadLibrary(Native.java:412)
at com.sun.jna.Native.loadLibrary(Native.java:391)
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:45)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:283)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:219)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:168)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:152)
at ScanCards.ScanCards.extraction(ScanCards.java:64)
at ScanCards.ScanCards.scan(ScanCards.java:37)
at ScanCards.ScanCardsGUI.scanButtonActionPerformed(ScanCardsGUI.java:16
0)
at ScanCards.ScanCardsGUI.access$100(ScanCardsGUI.java:22)
at ScanCards.ScanCardsGUI$2.actionPerformed(ScanCardsGUI.java:73)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:20
22)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Bisher kann ich verengen das Problem auf dieser Linie in meinem Code:
String strResult = instance.doOCR(file);
ich die „Datei“ überprüft haben, auf die OCR gegeben. Es ist ein vollkommen intaktes .tif-Bild (wie es in Netbeans sowieso gut funktioniert). Eine andere Sache, die ich dachte, könnte das Problem sein, dass das .jar nicht die notwendigen DLLs finden kann. Also kopiere die notwendigen .dlls in den "dist" -Ordner. Mit keinem Erfolg auch nicht. Ich habe die Datei tess4j-1.3.0.jar in die Bibliothek meines Projekts eingegeben.
Es ist schon merkwürdig, dass in NetBeans alles perfekt läuft. Ich glaube, ich vermisse einen Link zu einer Bibliothek, aber ich kann mir keinen vorstellen.
Das ist alles, woran ich denken kann, um Sie zu versorgen. Danke im Voraus!