В чем причина следующей ошибки, которая у меня возникает:
Исключение в потоке «основной» java.lang.UnsatisfiedLinkError: не удалось загрузить библиотеку SWT.
Я использую Eclipse 3.5 SE на Ubuntu 9.04 Jaunty.
Как я могу решить эту ошибку?
В чем причина следующей ошибки, которая у меня возникает:
Исключение в потоке «основной» java.lang.UnsatisfiedLinkError: не удалось загрузить библиотеку SWT.
Я использую Eclipse 3.5 SE на Ubuntu 9.04 Jaunty.
Как я могу решить эту ошибку?
У меня была такая же проблема с Oracle Java 7 и Eclipse в 32-битной системе.
libswt-gtk-3.6-java
и libswt-gtk-3.6-jni
уже установлены. Что помогло:
cd ~/.swt/lib/linux/x86
ln -s /usr/lib/jni/* .
Возможно, это можно сделать, перенастроив альтернативы Java или что-то в этом роде.
Я считаю, что обходной путь Николая Лехтански более элегантный.
создайте или отредактируйте /etc/eclipse.ini
Вставить внутрь:
-vmargs -Djava.library.path=/usr/lib/jni
выход
убедитесь, что файл доступен для чтения:
sudo chmod 755 /etc/eclipse.ini
Это означает, что родные библиотеки не могут быть найдены.
Либо у вас есть 32-разрядные библиотеки, а вы работаете на 64-разрядной машине, либо наоборот.
также убедитесь, что у вас правильно установлен параметр -Djava.library.path=
.
См. эту страницу о том, как работать вне eclipse
Какие версии Java и Eclipse вы используете, 32-разрядные или 64-разрядные, и как вы их установили?
Eclipse использует свою собственную библиотеку GUI, называемую SWT (она не использует Java AWT или Swing), и для этого ему нужны некоторые собственные (не Java) библиотеки. Если у вас установлена 32-разрядная версия Java, вам потребуется 32-разрядная версия Eclipse; если у вас установлена 64-разрядная версия Java, вам потребуется 64-разрядная версия Eclipse (обратите внимание, что на странице загрузки Eclipse есть 32-битная и 64-битная версии для Linux).
(Обратите внимание, что это зависит не от того, является ли ваша ОС Linux 32-разрядной или 64-разрядной, а от того, является ли ваша Java).
У меня была аналогичная проблема при удаленном запуске Eclipse на сервере через туннель «ssh -X». Я решил это, используя «sudo apt-get install libswt-gtk-3.6-java» на сервере.
Случилось со мной при запуске некоторого приложения Java с графическим интерфейсом на безголовом сервере с использованием переадресации X11 при наличии только установленного openjdk-7-jre-headless
. Установка полной jre решила проблему:
apt-get install openjdk-7-jre
я закончил тем, что сделал
cd ~/.swt/lib/macosx/x86_64
ln -s /usr/lib/java/* .
который устранил эту проблему.