2010-06-06 4 views
6

Что является причиной следующей ошибки у меня возникли:Исключение в потоке «основного» java.lang.UnsatisfiedLinkError: Не удалось загрузить библиотеку SWT

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library.

Я использую Eclipse 3.5 SE на Ubuntu 9.04 бойкий.

Как устранить эту ошибку?

ответ

2

Это означает, что родные библиотеки не найдены.
Либо у вас есть 32-битные библиотеки, либо вы работаете на 64-битной машине или наоборот.
также убедитесь, что у вас есть -Djava.library.path= установлены правильно

See this page on how to run outside of eclipse

2

Какие версии Java и Eclipse, вы используете, и они 32-битные или 64-бит, и как их установить?

Eclipse использует собственную библиотеку GUI под названием SWT (она не использует AWT или Swing Java), и для этого необходимы некоторые собственные (не Java) библиотеки. Если у вас установлена ​​32-разрядная Java, вам понадобится 32-разрядный Eclipse; если у вас установлена ​​64-разрядная Java, вам нужен 64-разрядный Eclipse (обратите внимание: на странице Eclipse downloads есть 32-разрядная и 64-разрядная версии для Linux).

(Обратите внимание, что это не зависит от того, является ли ваша ОС Linux 32-разрядной или 64-разрядной, но зависит от вашей Java).

+0

Могу ли я установить Java-32-bit на 64-разрядный ПК (работает 64-разрядная ОС?). – YumYumYum

+0

@Google Да, это должно сработать. В Windows это просто, просто запустите установщик для 32-разрядной Java; на Linux вам может потребоваться установить 32-разрядные библиотеки совместимости (как точно зависит от вашего дистрибутива Linux). – Jesper

1

У меня была аналогичная проблема при удаленном запуске Eclipse на сервере через туннель «ssh -X». Я разрешил его, используя «sudo apt-get install libswt-gtk-3.6-java» на сервере.

17

У меня была такая же проблема с Oracle Java 7 и Eclipse на 32-битной системе.

libswt-gtk-3.6-java и libswt-gtk-3.6-jni были уже установлены. What helped:

cd ~/.swt/lib/linux/x86 
ln -s /usr/lib/jni/* . 

Может быть, это может быть сделано реконфигурации Java альтернативы или что.

+3

Решил проблему для меня тоже на Ubuntu 12.04 с 64-битной Java (немного другой путь). – Cymen

+2

Я столкнулся с этой проблемой после обновления до Precise (12.04), используя 32-разрядную Java 6. Это решение работало и на меня. – njudge

+0

ubuntu 12.04 64-бит, установленное обновление java1.7 5.такая же команда, кроме «x86» -> «x86_64», работала –

3

Я считаю, Mikolaj Lechtanski's workaround более изящный.

create or edit /etc/eclipse.ini

Paste inside:

-vmargs 
-Djava.library.path=/usr/lib/jni 

exit

make sure the file is readable:

sudo chmod 755 /etc/eclipse.ini 
0

Довелось мне при запуске некоторых GUI приложений Java на безголовый сервере, используя перенаправление X11, а только при наличии openjdk-7-jre-headless установлено. Установка полной JRE решить эту проблему:

apt-get install openjdk-7-jre 
0

я в конечном итоге делает

cd ~/.swt/lib/macosx/x86_64 
ln -s /usr/lib/java/* . 

который фиксируется эту проблему.

Смежные вопросы