UnsatisfiedLinkError on xawt when running HEC-HMS.sh
- by G.Oxsen
I am a recent adopter of Linux and this problem has got me stumped. I use HEC-HMS and HEC-DSSVue for work on a regular basis. I have been using the widows versions in wine but they are really buggy. So I decided to try out the linux versions. the links below will take you to the download pages for these two programs. They are free programs for Hydrology and data management.
Once I install them and attempt to run the shell file (HEC-HMS.sh for example) I get a ton of java errors that I do not understand. If I had to guess I would say that the java files in question can not be found. When I check to see if java is installed it is.
Here is the output from the terminal from trying to run HEC-HMS.sh:
Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: /home/smythe/HEC/hec-hms35/java/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.<clinit>(Unknown Source)
at java.awt.Component.<clinit>(Unknown Source)
at javax.swing.ImageIcon.<clinit>(Unknown Source)
at hms.i.c(Unknown Source)
at hms.i.b(Unknown Source)
at hms.K.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "Thread-4" java.lang.UnsatisfiedLinkError: /home/smythe/HEC/hec-hms35/java/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.loadLibraries(Unknown Source)
at java.awt.Toolkit.<clinit>(Unknown Source)
at sun.print.CUPSPrinter.<clinit>(Unknown Source)
at sun.print.UnixPrintServiceLookup.getDefaultPrintService(Unknown Source)
at sun.print.UnixPrintServiceLookup.refreshServices(Unknown Source)
at sun.print.UnixPrintServiceLookup$PrinterChangeListener.run(Unknown Source)
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit
at java.awt.Color.<clinit>(Unknown Source)
at hms.model.l.<init>(Unknown Source)
at hms.model.ProjectManager.<init>(Unknown Source)
at hms.Hms.<init>(Unknown Source)
at hms.Hms.main(Unknown Source)
Exception in thread "Thread-2" java.lang.NoClassDefFoundError: Could not initialize class sun.print.CUPSPrinter
at sun.print.UnixPrintServiceLookup.getDefaultPrintService(Unknown Source)
at javax.print.PrintServiceLookup.lookupDefaultPrintService(Unknown Source)
at hms.util.f.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I get similar outputs when I try to run HEC-DSSVue.sh. If anyone could shed some light on a solution I would really appreciate it.
The problem turned out to be that the program needed 32 bit versions of the particular dependencies.