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

时间:2014-09-17 22:06:57

标签: java linux centos swt

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

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

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

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

我知道有关这个问题的各种网页。例如:

StackOverflow 1016569365185687130980

Jazz.netEclipse.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.<init>(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是版本独立的,但我猜不完全。

6 个答案:

答案 0 :(得分:6)

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

   System.out.println(" Element Value :"+list.get(1));
   System.out.println(" Element Class :"+list.get(1).getClass());
已安装

sudo apt-get install libwebkitgtk-1.0-0

答案 1 :(得分:1)

我使用的是SWT / GTK + v4.3,需要下载并更新到SWT / GTK + v4.4(或v4.5的测试版),它支持GTK版本v22中引入的新GTK +。*并存在于CENTOS 7.见Baz和我的评论。

答案 2 :(得分:0)

sudo apt-get install libwebkitgtk-1.0-0

我测试了很多java版本,认为它是java。但真正有意义的是为版本7.1和8.0的pentaho数据集成安装libwebkitgtk。

答案 3 :(得分:0)

对于 Linux Mint 19 ,它可以解决此问题(与marengaz的回答相同)

sudo apt-get install libwebkitgtk-1.0-0

答案 4 :(得分:0)

我尝试了

sudo yum install libwebkitgtk-1.0-0

在fedora 28上,我收到了此消息

” 上次元数据到期检查:2019年1月2日星期三0:33:01之前-02。 参数不匹配:libwebkitgtk-1.0-0 错误:找不到匹配项 “

此文章的阅读内容

https://community.hitachivantara.com/thread/13998-problems-with-libwebkitgtk-10-0

在fedora上没有libwebkitgtk版本1的支持

答案 5 :(得分:0)

正如大家所说,您必须安装 libwebkitgtk。但是现在在 linux mint 和 ubuntu 的更新版本中没有安装它。要解决此问题,请参阅:How to install the libwebkitgtk package on Ubuntu 20.04 LTS?

按照此处的步骤为我解决了问题:

  1. 打开终端并写入:

sudo nano /etc/apt/sources.list

  1. 将此条目添加到文件中并保存:

    deb http://cz.archive.ubuntu.com/ubuntu bionic main universe

  2. sudo apt-get update

  3. sudo apt-get install libwebkitgtk-1.0-0 -> 如果您使用的是 64 位的 Vega 和 jdk

sudo apt-get install libwebkitgtk-1.0-0:i386 -> 如果您使用的是 32 位的 Vega 和 jdk