Centos 安装Eclipse报错java.lang.UnsatisfiedLinkError: Could not load SWT library

在CentOs上安装Eclipse时报错:

!ENTRY org.eclipse.osgi 4 0 2017-08-15 00:22:12.612
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    /home/badou/app/eclipse/configuration/org.eclipse.osgi/744/0/.cp/libswt-pi-gtk-4527.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
    no swt-pi-gtk in java.library.path
    Can't load library: /home/badou/.swt/lib/linux/x86/libswt-pi-gtk-4527.so
    Can't load library: /home/badou/.swt/lib/linux/x86/libswt-pi-gtk.so
    /home/badou/.swt/lib/linux/x86/libswt-pi-gtk-4527.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:327)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:236)
    at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:38)
    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:134)
    at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:734)
    at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:162)
    at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:169)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:111)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    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:606)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1515)



原因是缺少SWT library,在联网的情况下执行一下命令:

 yum install gtk2.i686 gtk2-engines.i686 PackageKit-gtk-module.i686 PackageKit-gtk-module.x86_64 libcanberra-gtk2.x86_64 libcanberra-gtk2.i686
1
2
重启Eclipse,就可以了
————————————————
版权声明:本文为CSDN博主「月月鸟要好好学习安卓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenfengdejuanlian/article/details/77196100

`nested exception is java.lang.UnsatisfiedLinkError: libatomic.so.1: cannot open shared object file: No such file or directory` 这个错误信息通常出现在尝试加载动态链接库(dynamic link library,简称 DLL 或者 SO 文件)时遇到的问题,特别是在运行 Java 应用程序时。 在 Linux 和 Unix 类操作系统上,当尝试加载依赖于共享库(SO 文件)的 Java 应用程序时,如果系统中缺少特定版本的库文件 `libatomic.so.1`,就会引发这个错误。这表明 Java 虚拟机 (JVM) 正在寻找名为 `libatomic.so.1` 的库文件,但它找不到该文件或者是其正确的版本,导致应用程序无法正常启动。 ### 解决方案: 1. **确认所需库文件**:首先,你需要确定你的应用是否确实需要 `libatomic.so.1` 这个库文件。这通常发生在一些现代 C++ 编写的库被嵌入到 Java 应用程序中时,这些库可能会依赖于系统级的库如 OpenMP、Intel TBB 等提供原子操作支持。 2. **安装缺失的库**:如果这个库对你的应用至关重要,则需要通过包管理器(例如 apt-get 对于 Debian/Ubuntu,yum 对于 Red Hat/CentOS)来安装它。对于 `libatomic.so.1`,这可能意味着安装一个类似于 `libatomic-devel` 或类似名称的库。 - 对于 Ubuntu / Debian 用户,你可以运行: ```bash sudo apt-get install libatomic-devel ``` - 对于 CentOS / RHEL 用户,可以使用: ```bash sudo yum install atomic-devel ``` 3. **检查 Java 版本配置**:有时,问题可能出在 Java 应用程序使用的 JDK 或 JRE 版本与所需的库版本不匹配。确保 Java 的动态链接文件查找路径包含了必要的库文件。可以调整环境变量或在启动命令中指定正确的库搜索目录。 4. **重新构建和部署**:确保 Java 应用的构建过程能够正确地链接并包含所有必要的库文件。如果是在本地开发环境中构建的应用程序,可能需要重新构建并确保所有的依赖都得到正确处理。 5. **查看 JVM 日志**:有时,除了错误消息外,还会有一些额外的日志信息帮助诊断问题。检查相关日志文件(如 `/var/log/java.log`),以获取更多关于失败加载的具体细节。 通过上述步骤,你应该能解决因缺少 `libatomic.so.1` 引起的错误,并让 Java 应用程序正常运行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值