(有关新信息,请参阅底部更新。)
我有一个包含集成浏览器的Java SWT应用程序。
在Windows和CENTOS 6.5上一切正常。我被要求让应用程序在我安装CENTOS 7的新计算机上工作。
我一直在java.library.path错误消息中收到no swt-mozilla-gtk-4332。
我知道有关这个问题的各种网页。例如:
StackOverflow 10165693,6518568,7130980
我使用的是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浏览器需要旧版本,即使它不存在。问题是:
我现在理解大部分问题,但不是全部。
我看到Eclipse现在在Luna,所以可以解决问题,必须检查。这通常意味着更新的SWT库。我真的认为Java是版本独立的,但我猜不完全。
答案 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?
按照此处的步骤为我解决了问题:
sudo nano /etc/apt/sources.list
将此条目添加到文件中并保存:
deb http://cz.archive.ubuntu.com/ubuntu bionic main universe
sudo apt-get update
sudo apt-get install libwebkitgtk-1.0-0
-> 如果您使用的是 64 位的 Vega 和 jdk
sudo apt-get install libwebkitgtk-1.0-0:i386
-> 如果您使用的是 32 位的 Vega 和 jdk