web-dev-qa-db-ja.com

EclipseはSWTライブラリをロードできません

Ubuntu 12.04でEclipseを開こうとするたびに、Unsatisfied Link Errorが発生して開きません。私は最近Java JDKとAndroid SDKをインストールしました、これは問題でしょうか?私はこのチュートリアルを続けました。

これがログ情報です。

!SESSION 2012-04-15 21:05:46.902 -----------------------------------------------
Eclipse.buildId=I20110613-1736
Java.version=1.7.0
Java.vendor=Oracle Corporation
BootLoader constants: OS=linux, Arch=x86_64, WS=gtk, NL=en_GB
Command-line arguments:  -os linux -ws gtk -Arch x86_64

!ENTRY org.Eclipse.osgi 4 0 2012-04-15 21:05:47.885
!MESSAGE Application error
!STACK 1
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/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so

at org.Eclipse.swt.internal.Library.loadLibrary(Library.Java:285)
at org.Eclipse.swt.internal.Library.loadLibrary(Library.Java:194)
at org.Eclipse.swt.internal.C.<clinit>(C.Java:21)
at org.Eclipse.swt.internal.Converter.wcsToMbcs(Converter.Java:63)
at org.Eclipse.swt.internal.Converter.wcsToMbcs(Converter.Java:54)
at org.Eclipse.swt.widgets.Display.<clinit>(Display.Java:132)
at org.Eclipse.ui.internal.Workbench.createDisplay(Workbench.Java:695)
at org.Eclipse.ui.PlatformUI.createDisplay(PlatformUI.Java:161)
at org.Eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.Java:153)
at org.Eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.Java:95)
at org.Eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.Java:196)
at org.Eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.Java:110)
at org.Eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.Java:79)
at org.Eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.Java:344)
at org.Eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.Java:179)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:601)
at org.Eclipse.equinox.launcher.Main.invokeFramework(Main.Java:622)
at org.Eclipse.equinox.launcher.Main.basicRun(Main.Java:577)
at org.Eclipse.equinox.launcher.Main.run(Main.Java:1410)
at org.Eclipse.equinox.launcher.Main.main(Main.Java:1386)

アンインストールして再インストールし、~/.Eclipseディレクトリを削除しようとしましたが、まだ動作しません

287
TomRichardson

私のUbuntu 12.0432ビット。コマンドを編集して、

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

そしてUbuntu 12.0464ビットで試してみてください。

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
659
Scott

解決しよう:

Oracle Java 7をインストールしたため、デフォルトのJavaがOracle Java 7に変更されましたが、Open JDKである必要がありました。

修正するには、端末を開いてタイプしてください

Sudo update-alternatives --config Java

これにより、さまざまな種類のJavaのリストが表示されます。 Open JDKを選択してください。

52
TomRichardson

ライブラリへのパスを指定するだけです。

echo "-Djava.library.path=/usr/lib/jni/" >> /etc/Eclipse.ini
42
dzlatkov

私の場合、私は/usr/lib/jniディレクトリを完全に見逃していました。によって固定

Sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-Java

後でシンボリックリンクする必要はありません。 Eclipseは正常に起動しました。

13
Trenton
ライブラリをロードできません:/home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so
ライブラリをロードできません:/home/tom/.swt /lib/linux/x86_64/libswt-gtk.so

ライブラリは.swt/lib/linux/x86_64 /にあるはずです。そこにない場合は、次のコマンドを試してください。

libswt-gtk.soを見つけます。

これでライブラリはディレクトリ全体を/home/tom/.swt/lib/linux/x86_64にコピーします。

4
sherif

私は、彼がリストしたものがうまくいったことに同意します。しかし、どのディレクトリから実行してもうまくいきませんでした。 /home/*/.swt/lib/linux/x86_64/ 0ファイルにcdする必要がありました

最初にディレクトリを作成し、次にlinkコマンドを実行します。

32ビットの場合:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

そしてUbuntu 12.04 64 bitでは:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
3
leroneb

Oracle Javaを使用してEclipseを起動した場合、EclipseはSWTやSVNライブラリなどのネイティブライブラリの検索に失敗する可能性があります。 SWT-JNIライブラリーは/ usr/lib/jni /にあり、SVN-JNIライブラリーは/ usr/lib/x86_64-linux-gnu/jni /にあります。

コマンドでEclipseを起動する代わりに

Eclipse

あなたはコマンドを使用することができます

env LD_LIBRARY_PATH=/usr/lib/jni/:/usr/lib/x86_64-linux-gnu/jni/:$LD_LIBRARY_PATH Eclipse

環境変数LD_LIBRARY_PATHをEclipseに渡します。 Eclipseはネイティブライブラリを見つけて正しく動作します。

2
user1460856

Redhat7の場合:

yum install gtk2 libXtst xorg-x11-fonts-Type1

sWTの依存関係のため、仕事をしました。

ここで が見つかりました

2
user1767316

64ビットLinuxで32ビットビルドのEclipseを起動しようとしたときに、このエラーに遭遇しました。 ia32-libsパッケージをインストールした後、問題は解決しました。

1
lancha90

私はエラーを得ているという理由で私はJDK 32ビットをインストールしました。 JDK 64ビットをインストールした後 http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html jdk- 8u131-linux-x64.tar.gz(64バージョンをダウンロードしてください)および64ビットの「Eclipse-inst-linux64.tar.gz」をダウンロードしてください。

0
Shyam Gupta

より一般的な方法は次のとおりです。

  • openjdkの非ヘッドレスバージョンをインストールします。
  • eclipseをインストールして実行し、閉じます。
  • openjdkをアンインストールします。
  • oracleのJDKをインストールする
0
user1767316

ホームパーティションが実行可能な権限でマウントされていることを確認してください。これがデフォルトですが、execオプションなしでマウントした場合、このエラーが発生します。

0
Martin B.