Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not find library [libjsane.so] #6

Open
brucewoo opened this issue Apr 2, 2018 · 4 comments
Open

Could not find library [libjsane.so] #6

brucewoo opened this issue Apr 2, 2018 · 4 comments

Comments

@brucewoo
Copy link

brucewoo commented Apr 2, 2018

JarLib.load
Error = java.lang.UnsatisfiedLinkError: uk.co.mmscomputing.util.JarLib.loadX: Could not find library [libjsane.so]
JarLib.load
Error = java.lang.UnsatisfiedLinkError: uk.co.mmscomputing.util.JarLib.loadX: Could not find library [libjsane.so]
java.lang.UnsatisfiedLinkError: uk.co.mmscomputing.util.JarLib.loadX: Could not find library [libjsane.so]
at uk.co.mmscomputing.util.JarLib.loadX(JarLib.java:40)
at uk.co.mmscomputing.util.JarLib.load(JarLib.java:10)
at uk.co.mmscomputing.device.sane.jsane.(jsane.java:140)
at uk.co.mmscomputing.device.sane.SaneScanner.isAPIInstalled(SaneScanner.java:17)
at uk.co.mmscomputing.device.scanner.Scanner.getDevice(Scanner.java:86)
at net.sourceforge.vietocr.GuiWithScan$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
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.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.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)
JarLib.load
Error = java.lang.UnsatisfiedLinkError: no jsane in java.library.path
JarLib.load
Error = java.lang.UnsatisfiedLinkError: no jsane in java.library.path
java.lang.UnsatisfiedLinkError: no jsane in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at uk.co.mmscomputing.util.JarLib.load(JarLib.java:22)
at uk.co.mmscomputing.device.sane.jsane.(jsane.java:140)
at uk.co.mmscomputing.device.sane.SaneScanner.isAPIInstalled(SaneScanner.java:17)
at uk.co.mmscomputing.device.scanner.Scanner.getDevice(Scanner.java:86)
at net.sourceforge.vietocr.GuiWithScan$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
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.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.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)
00:13:02.931 [AWT-EventQueue-1] ERROR net.sourceforge.vietocr.GuiWithScan - null
java.lang.NullPointerException: null
at net.sourceforge.vietocr.GuiWithScan$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
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.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.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)

@nguyenq
Copy link
Owner

nguyenq commented Apr 3, 2018

The doc states: "On Linux, scanning requires installation of SANE packages." Have you installed it?

@nguyenq
Copy link
Owner

nguyenq commented Nov 1, 2018

It was recently discovered that the jsane library, the java wrapper to the SANE functions, only works with Linux 32-bit. Running it on Linux 64-bit will throw UnsatisfiedLinkError exceptions. It looks like a libjsane.so has to be compiled for 64-bit.

Background: http://imagej.1557.x6.nabble.com/Scan-does-not-scan-td3685074.html
Source: http://thorntonzone.com/manuals/Compression/Fax,%20IBM%20MMR/MMSC/mmsc/uk/co/mmscomputing/device/sane/index.html

@nguyenq
Copy link
Owner

nguyenq commented Feb 1, 2021

We can recompile the library on Linux Ubuntu 64-bit, but it looks like some change to the source code is necessary as UnsatisfiedLinkError exceptions still happen. Need JNI expert help!

@ekuester
Copy link

In my opinion you should leave out the scan option in the GUI. The uk.co.mmscomputing.device.sane.jar is too old for modern java ...
Nevertheless I gave it a try:
As outlined you need lin64 code. I fetched it from
ttps://github.com/julian554/jscan/tree/master/src/main/java/uk/co/mmscomputing/device/sane/lin64,
corrected the location of some include files and replaced libsane.so in jsane.cpp by libsane.so.1. Now build lib with
g++ -Wall -fPIC -fpermissive -pthread -D_REENTRANT -D_GNU_SOURCE -shared -o libjsane.so jsane.cpp jdesc.cpp jnu.cpp and get 64-bit libjsane.so . I copied this into /usr/lib so that it can be found by the program. Starting the JAR the above error messages are gone BUT I get a fatal error detected by the Java Runtime Environment ( SIGSEGV fault ). Here I gave up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants