Błąd niezadowolonego łącza i brakujące pliki .so podczas uruchamiania Eclipse

19

Wczoraj uaktualniłem do wersji beta 12.04. Teraz, gdy próbuję uruchomić Eclipse, pojawia się ekran powitalny, a następnie ten komunikat o błędzie:

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

Plik dziennika mówi coś takiego:

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

a następnie wiele innych komunikatów o błędach.

/home/gabriel/.swt/lib/linux/x86_64/Katalog istnieje, ale jest pusty. Próbowałem również ponownie zainstalować Eclipse bez powodzenia.

Jakieś pomysły?

Keidax
źródło
To jest błąd. Zaloguj się do Launchpada i zarejestruj, że to również dotyczy Ciebie: bugs.launchpad.net/ubuntu/+source/eclipse/+bug/989615
David Edwards

Odpowiedzi:

19

Mam ten sam problem na komputerze AMD64 (Ubuntu 12.04). i rozwiązałem to przez obejście:

kopiuj: pliki zawierające „3740” w /usr/lib/jni/libswt-*3740.so do ~ / .swt / lib / linux / x86_64 /

Ale upewnij się, że pakiety: libswt-gtk-3-java i libswt-gtk-3-jni są zainstalowane.

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

I

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

jeśli masz system 32-bitowy: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/

Hanynowski
źródło
1
Wow, to też zadziałało dla mnie (Intel Core i5, 64-bitowy Ubuntu 12.04). Dziękuję bardzo!
vallllll
1
Działa świetnie dla systemu 32-bitowego. Zastosowanie: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/. Dziękuję i proszę zaktualizuj swoją odpowiedź.
Binarylife
1
To też naprawdę działa dla mnie (64-bitowy system Ubuntu). Utworzyłem miękkie linki zamiast kopiowania.
masuch
4

Spróbuj uruchomić

sudo update-alternatives --config java

i wybór open jdk. To prawdopodobnie zadziałałoby.

Lelouch Lamperouge
źródło
To działało, ale staram się unikać używania openjdk.
Keidax
Właściwie nieważne. Po prostu pójdę z tym.
Keidax
1
Chciałem też uniknąć openjdk, więc sprawdź odpowiedź Hanynowsky'ego; zadziałało dla mnie!
Nick Badal
2

Również dla mnie to działa; Skończyłem:

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

i tak utworzyłem 3 dowiązanie symboliczne w folderze ~ / .swt / lib / linux / x86_64

Teraz Eclipse działa dobrze!

Luca122131
źródło
2
echo "-Djava.library.path=/usr/lib/jni" >> /etc/eclipse.ini

naprawiłem to dla mnie.

Dale E. Moore
źródło
Uwielbiam to rozwiązanie, naprawiłem je dla wszystkich użytkowników.
Adam Ness,
1

Dzięki za wspaniałe instrukcje. Zamiast tego dodałem takie dowiązania symboliczne, aby upewnić się, że pobiera wszystkie 3740 :

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done
henz
źródło
0

Zrobiłem dowiązania symboliczne do brakujących bibliotek i wszystko działało dobrze. Skończyło się tak wyglądać ...

    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

Wydaje się działać.

kolęda
źródło