在我的Arch Linux上,使用Google Window Builder / SWT应用程序的Eclipse,我正在
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
at org.eclipse.swt.SWT.error(SWT.java:4308)
at org.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1826)
at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:687)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:99)
at octopus.EventSummaryComposite.<init>(EventSummaryComposite.java:33)
at octopus.EventEditingComposite.<init>(EventEditingComposite.java:45)
at octopus.EventManagementController.<init>(EventManagementController.java:31)
at octopus.MainController.<init>(MainController.java:38)
at octopus.MainController.main(MainController.java:85)
我相信我需要安装XULrunner或其他东西。但是当我在Arch中安装xulrunner
时,我得到xulrunner and eclipse are in conflict
。所以我尝试安装pywebkitgtk
。然后我将-Dorg.eclipse.swt.browser.DefaultType=webkit
添加到/usr/bin/eclipse
和/usr/share/eclipse/eclipse.ini
,不确定使用了哪个。但是当我跑步时,我仍然得到同样的错误。似乎webkit仍未使用。我该如何解决这个问题?
更新2
到目前为止,我尝试安装libwebkit3
。然后将-Dorg.eclipse.swt.browser.UseWebKitGTK=true
添加到/usr/share/eclipse/eclipse.ini
,我得到了同样的错误。
然后我也尝试将xulrunner
from mozilla下载并解压缩到~/xulrunner
并将-Dorg.eclipse.swt.browser.XULRunnerPath=/home/jiewmeng/xulrunner/
添加到配置中,仍然是同样的错误......
刚刚在Ubuntu中,我刚刚安装了xulrunner
并且它工作了......我想知道配置是否被使用?
更新(环境和版本)
如果您需要其他相关信息,请告诉我
更新(旧)
如果我将代码更改为
new Browser(this, SWT.WEBKIT)
我得到了
Exception in thread "main" org.eclipse.swt.SWTError: No more handles
at org.eclipse.swt.SWT.error(SWT.java:4308)
at org.eclipse.swt.SWT.error(SWT.java:4197)
at org.eclipse.swt.SWT.error(SWT.java:4168)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:103)
at octopus.EventSummaryComposite.<init>(EventSummaryComposite.java:33)
at octopus.EventEditingComposite.<init>(EventEditingComposite.java:45)
at octopus.EventManagementController.<init>(EventManagementController.java:31)
at octopus.MainController.<init>(MainController.java:38)
at octopus.MainController.main(MainController.java:85)
答案 0 :(得分:7)
根据编辑过的问题和所有勘误表,显而易见的问题似乎是您运行的Eclipse版本与系统上安装的Mozilla或WebKit版本之间的版本冲突。这由extremely terse documentation和dependency hell进一步混淆。
关键是检查正在运行的Eclipse版本,并将其与系统上安装的xulrunner
和libwebkit
版本进行比较,完全按照答案和勘误here中的建议进行比较并记录在案在常见问题here中。但是,根据您遇到的困难以及有关此问题的稀疏文档,您需要采取特殊预防措施,以确保严格正确的版本满足您的所有依赖关系。
鉴于您的诊断xulrunner and eclipse are in conflict
,我做了一些挖掘以找到解决此问题的正确方法。事实证明,this thread中详细介绍了这一点。您需要关注的重要信息:
Eclipse 3.5.2-3.6.x与xulrunner 2.0不兼容。如果这是一个较旧的系统,请使用xulrunner 1.9.2-15-2来解决问题。
您使用的Eclipse版本很可能不支持libwebkit3
。如上所述,您极有可能需要使用早期版本。
在所有情况下,使用正确的Gecko绑定构建Firefox版本应该可以解决问题,并且事实上,当这些绑定不存在时会重现此错误:
还要注意一个包含Gecko版本的Firefox版本 与上面的Mozilla版本相关也可以使用 Eclipse 3.1和更新版本(仅限Linux),前提是它已经编译完毕 带有可链接的Gecko库。重要的是要注意Firefox 从mozilla.org下载不符合此标准,但Firefox 主要Linux发行版中包含的安装通常会这样做 在没有安装XULRunner的情况下。试图使用 没有可链接的Gecko库的Firefox安装会引发错误 消息“不再处理[NS_InitEmbedding ... error -2147221164]”。
简而言之:问题在于Arch Linux对Eclipse SWT依赖项的打包。但是,这是一个长达一年的问题,表明您的Eclipse版本和系统的其余部分迫切需要软件升级......:)
编辑:要获得Google WindowBuilder Pro在Arch Linux中使用的SWT浏览器小部件的副本,我创建了一个VM并使用OP逐步完成此过程。我能够在32位和64位版本的Arch Linux中重现这个错误。
事实证明,Arch Linux对libwebkit
的绑定不足,所以我继续构建xulrunner-1.9.2.19
from source。在whole lot necessary fixups之后,我的make install
版本只适用于Eclipse。
对于任何愿意的人来说,下一步就是向Arch Linux报告。
答案 1 :(得分:3)
这个步骤适用于基于Eclipse 3.7.2(Ubuntu 12.04 - 64bits)的STS 2.9.2:
答案 2 :(得分:1)
在我的情况下,我只需要安装 libwebkitgtk-1.0-0 :
sudo apt-get install libwebkitgtk-1.0-0
我的机器上的信息:
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
另请参阅:https://rusya7.blogspot.com.es/2013/07/eclipse-internal-browser-is-not.html
答案 3 :(得分:0)
请参阅SWT FAQ
中的浏览器质量检查答案 4 :(得分:0)
MOZILLA_FIVE_HOME没有设置为日食插入或任何插入给出未处理的错误请执行以下过程并完成。
在ubuntu 12.04中安装eclipse颜色主题插件后,可能会出现“MOZILLA_FIVE_HOME未设置”错误。这是一个工作场所。
从此处下载并安装libhunspell-1.2-0并安装它。
sudo dpkg -i libhunspell-1.2-0_1.2.14-4_amd64.deb
从此处下载并安装xulrunner-1.9.2并安装。
sudo dpkg -i xulrunner-1.9.2_1.9.2.28 + build1 + nobinonly-0ubuntu0.11.04.1_amd64.deb
答案 5 :(得分:0)