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

19

Я обновился до 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/Каталог существует, но пуст. Я также попытался переустановить затмение безуспешно.

Есть идеи?

Keidax
источник
Это ошибка. Пожалуйста, войдите в Launchpad и зарегистрируйтесь, чтобы это также коснулось
Дэвид Эдвардс

Ответы:

19

У меня та же проблема с машиной 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/

Hanynowsky
источник
1
вау, это на самом деле работает и для меня (Intel Core i5, 64-битная Ubuntu 12.04) большое спасибо!
Vallllll
1
Отлично работал на 32-битной системе. Использование: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/. Спасибо и обновите свой ответ, пожалуйста.
Binarylife
1
Это действительно работает и для меня (Ubuntu точный 64 бит). Я создал мягкие ссылки вместо копирования.
марта
4

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

sudo update-alternatives --config java

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

Лелуш Лампероуг
источник
Это сработало, но я пытаюсь избежать использования openjdk.
Кейдакс
На самом деле, неважно. Я просто пойду с этим.
Кейдакс
1
Я также хотел избежать openjdk, так что посмотрите ответ Hanynowsky; это сработало для меня!
Ник Бадал
2

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

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 работает отлично!

Luca122131
источник
2
echo "-Djava.library.path=/usr/lib/jni" >> /etc/eclipse.ini

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

Дейл Э. Мур
источник
Люблю это решение, исправил его для всех пользователей.
Адам Несс
1

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

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done
Генри
источник
0

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

    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

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

Ноэль
источник