Неудовлетворенная ошибка связи и отсутствующие .so файлы при запуске Eclipse

Я обновился до бета-версии 12.04 вчера. Теперь, когда я пытаюсь запустить Eclipse, я получаю заставку и затем это сообщение об ошибке:

An error has occurred. See the log file /home/gabriel/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1335382319394.log .

Файл журнала говорит что-то вроде этого:

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    no swt-gtk-3740 in java.library.path
    no swt-gtk in java.library.path
    Can't load library: /home/gabriel/.swt/lib/linux/x86_64/libswt-gtk-3740.so
    Can't load library: /home/gabriel/.swt/lib/linux/x86_64/libswt-gtk.so

, за которым следует еще много сообщения об ошибках.

Каталог /home/gabriel/.swt/lib/linux/x86_64/ существует, но пуст. Я также попытался переустановить затмение безуспешно.

Есть идеи?

19
задан 25 April 2012 в 23:41

6 ответов

У меня такая же проблема на машине AMD64 ( Ubuntu 12.04). и решил это обходным путем:

копия: файлы, содержащие '3740', в /usr/lib/jni/libswt-*3740.so в ~ / .swt / lib / linux / x86_64 /

Но убедитесь, что установлены пакеты: libswt-gtk-3-java и libswt-gtk-3-jni .

sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java

и

sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86_64/

, если у вас 32-битная система: sudo cp /usr/lib/jni/libswt-*3740.so ~ / .swt / lib / linux / x86 /

19
ответ дан 25 April 2012 в 23:41

Также у меня работает; Я сделал:

cd ~/.swt/lib/linux/x86_64
ln -s /usr/lib/jni/libswt-atk-gtk-3740.so
ln -s /usr/lib/jni/libswt-gtk-3740.so
ln-s /usr/lib/jni/libswt-pi-gtk-3740.so

и создал 3 символических ссылки в папке ~ / .swt / lib / linux / x86_64

Теперь Eclipse работает нормально!

2
ответ дан 25 April 2012 в 23:41
echo "-Djava.library.path=/usr/lib/jni" >> /etc/eclipse.ini

исправил это для меня.

2
ответ дан 25 April 2012 в 23:41

Спасибо за отличные инструкции. Вместо этого я добавил такие символические ссылки, чтобы убедиться, что он принимает все 3740 :

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done
1
ответ дан 25 April 2012 в 23:41

Я сделал символические ссылки на недостающие библиотеки и все работало нормально.В итоге получилось так ...

    libswt-atk-gtk-3740.so -> /usr/lib/jni/libswt-atk-gtk-3740.so
    libswt-gtk-3740.so -> /usr/lib/jni/libswt-gtk-3740.so
    libswt-pi-gtk-3740.so -> /usr/lib/jni/libswt-pi-gtk-3740.so

Кажется, работает.

0
ответ дан 25 April 2012 в 23:41

Попробуйте запустить

sudo update-alternatives --config java

и выбор открыть jdk . Это, вероятно, сработает.

4
ответ дан 25 April 2012 в 23:41

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

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