java.library.path中没有swt-mozilla-gtk-4332

 mobiledu2502895417 发布于 2022-12-20 19:18

(有关新信息,请参阅底部更新.)

我有一个包含集成浏览器的Java SWT应用程序.

在Windows和CENTOS 6.5上一切正常.我被要求让应用程序在我安装CENTOS 7的新计算机上运行.

我一直在java.library.path错误消息中收到no swt-mozilla-gtk-4332.

我知道有关此问题的各种页面.例如:

StackOverflow的10165693,6518568,7130980

Jazz.net,Eclipse.org

我使用的是Firefox 24.8.0.随附CENTOS 7.我刚刚更新了所有软件.

引用表明我应该有OpenJDK,我这样做.这是唯一可以执行Java的版本.

我安装了另一个推荐xulrunner(yum install xulrunner).

我设置:MOZILLA_FIVE_HOME =/usr/lib/mozilla(有人说使用其他人不说的.我试过两个.另外,有一个问题指向"/ usr/lib64/xulrunner"少了双引号,但是这不起作用.是的,这个文件夹存在.)

587人和计数赞成Ubuntu解决方案:

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

没有jni文件夹,以及该选项无法正常工作的任何方式.

正如我所提到的,只有一个程序,所以

sudo update-alternatives --config java

没用

问题是什么以及如何解决?由于CENTOS 6.5机器可以运行(可能是因为缺少软件包?)而7没有,所以不能只是我需要在我的jar文件中添加一些东西,就像以前一样.

注意:这是我的/etc/profile.d/java.sh文件内容:

export MOZILLA_FIVE_HOME=/usr/lib/mozilla
export LD_LIBRARY_PATH=${MOZILLA_FIVE_HOME}:${LD_LIBRARY_PATH}

这是实际的错误输出.

Exception in thread "main" java.lang.reflect.InvocationTargetException
    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.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME='/usr/lib/mozilla'] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    no swt-mozilla-gtk-4332 in java.library.path
    no swt-mozilla-gtk in java.library.path
    /home/hts/.swt/lib/linux/x86_64/libswt-mozilla-gtk-4332.so: libxpcom.so: cannot open shared object file: No such file or directory
    Can't load library: /home/hts/.swt/lib/linux/x86_64/libswt-mozilla-gtk.so
)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.initMozilla(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.create(Unknown Source)
    at org.eclipse.swt.browser.Browser.(Unknown Source)
    at prjNetAccelerator.AppMain.createContents(Unknown Source)
    at prjNetAccelerator.AppMain.open(Unknown Source)
    at prjNetAccelerator.AppWrapper.doLaunch(Unknown Source)
    at prjNetAccelerator.AppWrapper.main(Unknown Source)
    ... 5 more
Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    no swt-mozilla-gtk-4332 in java.library.path
    no swt-mozilla-gtk in java.library.path
    /home/hts/.swt/lib/linux/x86_64/libswt-mozilla-gtk-4332.so: libxpcom.so: cannot open shared object file: No such file or directory
    Can't load library: /home/hts/.swt/lib/linux/x86_64/libswt-mozilla-gtk.so

    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    ... 12 more

更新

错误文本显示了问题,即系统找不到libxpcom.so.版本22.0中的Mozilla(xulruntime)用libxul.so替换了文件libxpcom.so和mozsqlite3.so.libsmozsqlite3.so文件除了消失之外还停留了几个版本.所有其他文件与版本28.x相同,这是截至今天(2014.09.18)的当前版本.

由于某种原因,集成的SWT浏览器需要旧版本,即使它不存在.问题是:

SWT决定使用哪个版本的Gecko GTK +/xulrunner的机制是什么?

SWT的新版本,虽然我认为我的Eclipse Kepler版本是最新的,但是解决了这个问题?

如何让SWT定位新版本?

Firefox或Chrome的问题还是有什么关系?

我现在理解大部分问题,但不是全部.

我看到Eclipse现在在Luna,因此可以解决问题,必须检查.这通常意味着更新的SWT库.我真的认为Java是版本独立的,但我想并不完全.

1 个回答
  • 我刚刚在Ubuntu 14.04上遇到了同样的错误,并通过安装旧版本解决了这个问题:

    sudo apt-get install libwebkitgtk-1.0-0
    

    libwebkitgtk-3.0-0 已安装

    2022-12-20 19:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有