在我的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
从mozilla到~/xulrunner
和添加-Dorg.eclipse.swt.browser.XULRunnerPath=/home/jiewmeng/xulrunner/
configuration,仍然是相同的错误…
在Ubuntu刚刚,我只是安装了xulrunner
和它的工作…我不知道如果configuration甚至使用?
Arch Linux的问题
更新(环境和版本)
让我知道你是否需要其他相关信息
更新(旧)
如果我更改我的代码
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)
根据编辑的问题和所有的勘误,这个明显的问题似乎是在您运行的Eclipse版本与系统上安装的Mozilla或WebKit版本之间的版本冲突。 这是由非常简洁的文档和依赖地狱进一步混合。
关键是检查您的正在运行的Eclipse版本,并将其与您系统上安装的xulrunner
和libwebkit
版本进行比较,完全按照答案和勘误表中的建议进行,并在此处的FAQ中进行了说明 。 但是,根据您遇到的困难以及有关此问题的稀疏文档,您需要采取特殊的预防措施,以确保您的所有依赖关系对于严格正确的版本都是满意的。
鉴于你的诊断结果,我们做了一些挖掘,找出解决这个问题的正确方法。 事实证明,这是在这个线程中详细的覆盖。 您需要关注的重要信息:
Eclipse 3.5.2-3.6.x与xulrunner 2.0不兼容。 如果这是一个较旧的系统,请使用xulrunner 1.9.2-15-2来解决问题。
您正在使用的Eclipse版本很可能不支持libwebkit3
。 如前所述,您很可能需要使用较早的版本。
在任何情况下,使用正确的Gecko绑定构建一个Firefox版本应该可以解决这个问题,而且事实上,当这些绑定不存在时,会重现这个错误:
另外请注意,包含Gecko版本与上述Mozilla版本相关的Firefox版本也可以与Eclipse 3.1及更新版本(仅限于Linux)一起使用,前提是已经使用可链接的Gecko库进行编译。 需要注意的是,从mozilla.org下载Firefox并不能满足这个标准,但主要Linux发行版中包含的Firefox安装通常在缺少XULRunner安装的情况下执行。 尝试使用不带可链接的Gecko库的Firefox安装将引发错误消息“No more handles [NS_InitEmbedding … error -2147221164]”。
简而言之,问题在于Arch Linux打包了Eclipse SWT的依赖关系。 但是,这是一个年代久远的问题,表明您的Eclipse版本和您的系统的其余部分急需软件升级… 🙂
编辑:为了让Google WindowBuilder Pro的SWT浏览器小工具在Arch Linux中工作,我创建了一个虚拟机,并使用OP来完成这个过程。 我能够重现Arch Linux的32位和64位版本中的错误。
原来Arch Linux对libwebkit
的绑定不够,所以我继续从源代码构建xulrunner-1.9.2.19
。 在进行了大量 必要的 修复之后 ,我的make install
版本仅适用于Eclipse。
对于任何人来说,下一步就是向Arch Linux报告。
基于Eclipse 3.7.2(Ubuntu 12.04 – 64bits)的STS 2.9.2使用这个步骤:
MOZILLA_FIVE_HOME没有设置为eclipse pluging或任何pluging给未处理的错误,请做下面的过程,你就完成了。
在Ubuntu 12.04中安装eclipse color主题插件后,可能会出现“MOZILLA_FIVE_HOME not set”错误。 这是一个工作。
从这里下载并安装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
请参阅SWT FAQ中的浏览器QA
在Arch Linux中,基于@mrgomez的答案和FAQ提供的安装:
# pacman -S webkitgtk2
解决了问题!
谢谢!
在我的情况下,我只需要安装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