ข้อผิดพลาดลิงก์ไม่พอใจและไฟล์. 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/ไดเรกทอรีอยู่ แต่ว่างเปล่า ฉันลองติดตั้งคราสอีกครั้งโดยไม่ประสบความสำเร็จ

ความคิดใด ๆ


นี่เป็นข้อผิดพลาด โปรดลงชื่อเข้าใช้ Launchpad และลงทะเบียนด้วยซึ่งมีผลกับคุณเช่น: bugs.launchpad.net/ubuntu/+source/eclipse/+bug/989615
David Edwards

คำตอบ:


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/


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 บิตที่แม่นยำ) ฉันสร้างซอฟต์ลิงค์แทนการคัดลอก
masuch

4

ลองวิ่ง

sudo update-alternatives --config java

open jdkและการเลือก นี่อาจจะใช้ได้


นี้ไม่ได้ทำงาน openjdkแต่ฉันพยายามที่จะหลีกเลี่ยงการใช้
Keidax

ที่จริงไม่เป็นไร ฉันจะไปกับมัน
Keidax

1
ฉันต้องการหลีกเลี่ยง openjdk ด้วยดังนั้นลองดูคำตอบของ Hanynowsky; มันใช้งานได้สำหรับฉัน!
Nick Badal

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 symlink ในโฟลเดอร์ ~ / .swt / lib / linux / x86_64

ตอนนี้ Eclipse ทำงานได้ดี!



1

ขอบคุณสำหรับคำแนะนำที่ดี ฉันได้เพิ่ม symlink แบบนี้แทนเพื่อให้แน่ใจว่าจะรับทั้งหมด3740 :

cd ~/.swt/lib/linux/x86_64

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

0

ฉันทำ symlink ให้กับ libs ที่หายไปและทุกอย่างทำงานได้ดี มันดูเหมือนว่า ...

    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

ดูเหมือนว่าจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.