Jie*_*eng 9 browser eclipse linux swt
在我的Arch Linux,Eclipse上使用Google Window Builder/SWT应用程序,我得到了
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)
Run Code Online (Sandbox Code Playgroud)
我相信我需要安装XULrunner或其他东西.但是当我安装xulrunner在Arch中时,我得到了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/到配置,还是同样的错误......
刚刚在Ubuntu中,我刚刚安装xulrunner并且工作正常......我想知道配置是否被使用?
更新(环境和版本)
如果您需要其他相关信息,请告诉我们
更新(旧)
如果我将我的代码更改为
new Browser(this, SWT.WEBKIT)
Run Code Online (Sandbox Code Playgroud)
我明白了
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)
Run Code Online (Sandbox Code Playgroud)
根据编辑过的问题和所有勘误表,明显的问题似乎是您运行的Eclipse版本与系统上安装的Mozilla或WebKit版本之间的版本冲突.这是由极其简洁的文档和依赖地狱进一步混淆的.
关键是要检查你运行Eclipse版本,比较它的版本xulrunner和libwebkit完全一样的答案,勘误建议安装在系统上,这里和常见问题记录在这里.但是,根据您遇到的困难以及有关此问题的稀疏文档,您需要采取特殊预防措施,以确保严格正确的版本满足所有依赖关系.
鉴于您的诊断xulrunner and eclipse are in conflict,我做了一些挖掘以找到解决此问题的正确方法.事实证明,这篇文章详细介绍了这一点.您需要关注的重要信息:
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安装会抛出错误消息"没有更多句柄[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 从源代码构建.经过一整个 很多的必要 的修正,我的make install版本只是工作与Eclipse.
对于任何愿意的人来说,下一步就是向Arch Linux报告.
| 归档时间: |
|
| 查看次数: |
15964 次 |
| 最近记录: |