UnsatisfiedLinkError на xawt при запуске HEC-HMS.sh

Я недавно освоил Linux, и эта проблема поставила меня в тупик. Я использую HEC-HMS и HEC-DSSVue для работы на регулярной основе. Я использовал версии вдов в вине, но они действительно глючат. Поэтому я решил попробовать версии для Linux. ссылки ниже приведут вас к страницам загрузки для этих двух программ. Это бесплатные программы для гидрологии и управления данными.

После того, как я установил их и попытался запустить файл оболочки (например, HEC-HMS.sh), я получил массу ошибок Java, которые я не понимаю. Если бы мне пришлось угадывать, я бы сказал, что java-файлы не могут быть найдены. Когда я проверяю, установлена ​​ли ява, это так.

Вот вывод от терминала при попытке запустить 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)

Я получаю аналогичные выводы при попытке запустить HEC-DSSVue.sh. Если бы кто-нибудь мог пролить свет на решение, я был бы очень признателен.

Проблема оказалась в том, что программе требовались 32-битные версии определенных зависимостей.

2
задан 27 June 2013 в 20:00

2 ответа

Я посмотрел на сообщение об ошибке.

Я вполне уверен, Вы пропускаете библиотеки, или что они не могут быть считаны, брошенные, который это сообщение показывает дважды в трассировке: /home/smythe/HEC/hec-hms35/java/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

Это предполагает, что одна из двух вещей происходит:

  1. Рассматриваемые файлы библиотеки отсутствуют, и поэтому неприменимые.
  2. Рассматриваемые файлы библиотеки существуют, но не имеют корректных полномочий, что означает, что Java не может на самом деле "видеть" файлы.

Решение зависит от ситуации:

  1. (a) Если файлы библиотеки действительно отсутствуют, то необходимо поместить файлы библиотеки в тот каталог.

    (b) Установите libxtst6 пакет для получения библиотек по системе. Если необходимо включать библиотеки в источник по некоторым причинам, необходимо загрузить их отдельно и включать их.
  2. Если файлы библиотеки существуют, но не читаемы, то необходимо предоставить нам подробную информацию о владении тех файлов (вставляющий вывод ls -l /home/smythe/HEC/hec-hms35/java/lib/i386/xawt/ не причинил бы боль, таким образом, мы видим права владения на нем, а также прочитайте/пишите/выполните полномочия.)
0
ответ дан 27 June 2013 в 20:00

Вам не хватает библиотеки, которая требуется для этой программы.

/home/smythe/HEC/hec-hms35/java/lib/i386/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

Вам необходимо установить libXtst.so.6. Поиск пакетов, содержащих этот файл, приводит к libxtst6 .

Could not initialize class sun.print.CUPSPrinter

Я думаю, что это часть JDK, но, похоже, требуется awt, который не мог быть инициализирован выше, поэтому, как только вы исправите первую ошибку, вы должны быть установлены.

0
ответ дан 27 June 2013 в 20:00

Другие вопросы по тегам:

Похожие вопросы: