SWT浏览器和Eclipse

在我的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的问题

更新(环境和版本)

  • Arch Linux
  • GNOME 3
  • Eclipse 3.7.2
  • SWT 1.3.0 / 3.7.2(http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7)
  • XULRunner 1.9.2.19(http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2.19/)
  • Firefox 11(来自pacman)

让我知道你是否需要其他相关信息

更新(旧)

如果我更改我的代码

 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版本,并将其与您系统上安装的xulrunnerlibwebkit版本进行比较,完全按照答案和勘误表中的建议进行,并在此处的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使用这个步骤:

  1. 使用此更新站点安装Eclipse的Google插件: http : //dl.google.com/eclipse/plugin/3.7 。 我只想使用GWT,所以我只选中了“Google的Eclipse插件”,“GPE的GWT Designer”和“SDKs”。
  2. 重新启动Eclipse并验证尝试使用WindowBuilder设计GWT UIBinder视图失败,显示与xulrunner相关的错误。
  3. 关闭Eclipse。
  4. 安装所需的软件包(受http://elgali.net/2012/05/14/gwt-designer-eclipse-plugin-in-ubuntu-12-04/的启发&#xFF09;
    • sudo apt-get install libicu48
    • sudo apt-get install libwebkitgtk-1.0-common
    • sudo apt-get install libwebkitgtk-1.0-0
  5. 再次启动Eclipse并检查WindowBuilder Desing视图的工作原理!

MOZILLA_FIVE_HOME没有设置为eclipse pluging或任何pluging给未处理的错误,请做下面的过程,你就完成了。

在Ubuntu 12.04中安装eclipse color主题插件后,可能会出现“MOZILLA_FIVE_HOME not set”错误。 这是一个工作。

  1. 从这里下载并安装libhunspell-1.2-0并安装它。

     sudo dpkg -i libhunspell-1.2-0_1.2.14-4_amd64.deb 
  2. 从这里下载并安装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