Eclipseの起動時の未満足のリンクエラーと.soファイルの欠落


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/ディレクトリが存在しますが、空です。また、Eclipseを再インストールしようとしても成功しませんでした。

何か案は?


これはバグです。:ランチパッドにログインして、これはまた、あなたに影響を与えることを登録してくださいbugs.launchpad.net/ubuntu/+source/eclipse/+bug/989615を
デビッド・エドワーズ

回答:


19

AMD64マシン(Ubuntu 12.04)でも同じ問題が発生しています。回避策で解決しました:

コピー: /usr/lib/jni/libswt-*3740.so 「3740」を含むファイルを〜/ .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コア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ます。
ケイダックス

実際、気にしないでください。一緒に行きます。
ケイダックス

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

そして、フォルダ〜/ .swt / lib / linux / x86_64に3つのシンボリックリンクを作成しました

これで、Eclipseは正常に動作します!


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

動作しているようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.