Lỗi liên kết không thỏa mãn và các tệp .so bị thiếu khi khởi động Eclipse


19

Tôi đã nâng cấp lên bản beta 12.04 ngày hôm qua. Bây giờ, khi tôi cố gắng khởi động Eclipse, tôi nhận được màn hình giật gân và sau đó là thông báo lỗi này:

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

Tệp nhật ký nói một cái gì đó như thế này:

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

theo sau là nhiều thông báo lỗi hơn.

Thư mục /home/gabriel/.swt/lib/linux/x86_64/tồn tại, nhưng trống rỗng. Tôi cũng đã thử cài đặt lại nhật thực nhưng không thành công.

Có ý kiến ​​gì không?


Đây là một lỗi. Vui lòng đăng nhập vào Launchpad và đăng ký rằng điều này cũng ảnh hưởng đến bạn: bug.launchpad.net/ubfox/+source/eclipse/+orms/989615
David Edwards

Câu trả lời:


19

Tôi đã gặp vấn đề tương tự trong máy AMD64 (Ubuntu 12.04). và giải quyết nó bằng một cách giải quyết:

sao chép: các tệp chứa '3740' trong /usr/lib/jni/libswt-*3740.so sang ~ / .swt / lib / linux / x86_64 /

Nhưng, hãy chắc chắn các gói: libswt-gtk-3-java & libswt-gtk-3-jni đã được cài đặt.

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/

nếu bạn có hệ thống dựa trên 32 bit: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/


1
wow điều này thực sự hiệu quả với tôi (Intel core i5, 64 bit ub Ubuntu 12.04) cảm ơn rất nhiều!
vallllll

1
Làm việc tuyệt vời cho một hệ thống 32 bit. Sử dụng : sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/. Cảm ơn và cập nhật câu trả lời của bạn xin vui lòng.
Binarylife

1
Nó thực sự hoạt động với tôi (Ubuntu chính xác 64 bit). Tôi đã tạo các liên kết mềm thay vì sao chép.
masuch

4

Hãy thử chạy

sudo update-alternatives --config java

và lựa chọn open jdk. Điều này có thể sẽ làm việc.


Điều này đã làm việc, nhưng tôi đang cố gắng tránh sử dụng openjdk.
Keidax

Thật ra, đừng bận tâm. Tôi sẽ chỉ đi với nó.
Keidax

1
Tôi cũng muốn tránh openjdk, vì vậy hãy xem câu trả lời của Hanynowsky; nó làm việc cho tôi
Nick Badal

2

Ngoài ra đối với tôi nó hoạt động; Tôi xong rồi:

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

và vì vậy, tôi đã tạo 3 symlink trong thư mục ~ / .swt / lib / linux / x86_64

Bây giờ Eclipse hoạt động tốt!


2
echo "-Djava.library.path=/usr/lib/jni" >> /etc/eclipse.ini

sửa nó cho tôi


Yêu giải pháp này, đã sửa nó cho tất cả người dùng.
Adam Ness

1

Cảm ơn các hướng dẫn tuyệt vời. Tôi đã thêm các liên kết tượng trưng như thế này để đảm bảo rằng nó chọn tất cả 3740 :

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done

0

Tôi đã tạo ra các liên kết đến các lib bị thiếu và mọi thứ đều hoạt động tốt. Nó cuối cùng trông như thế này ...

    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

Có vẻ để làm việc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.