在CentOS 6.7中运行的我的RCP应用程序使用SWT浏览器。它在eclipse中启动应用程序时工作正常,但是当我将其作为独立应用程序运行时,浏览器无法实例化,并且SWT异常带有消息"不再处理"被扔了。我更喜欢使用SWT.WEBKIT样式的浏览器,但它也不适用于样式SWT.NONE。
我安装了最新版本的软件包webkitgtk,webkitgtk-devel和gtk2。我尝试使用样式SWT.NONE并将env变量MOZILLA_FIVE_HOME设置为指向firefox安装目录,xulrunner可执行文件,甚至是google-chrome安装。我还在LD_LIBRARY_PATH中添加了$ MOZILLA_FIVE_HOME。如果我为MOZILLA_FIVE_HOME设置了任何内容,则在实例化浏览器时应用程序会出现段错误。如果我没有设置MOZILLA_FIVE_HOME,我会收到SWT例外。
SWT文档说如果我安装了webkitgtk,eclipse会自动检测到它。但它也表示,使用eclipse 4.2及更高版本默认使用gtk3。我没有看到任何gtk3包。
我在目标中使用Eclipse SDK 4.4.2,但我的应用程序是Eclipse 3应用程序。所以这可能是兼容层中的错误。我可以尝试使用Eclipse 3.x SDK,但我不愿意这样做。正在安装的SWT插件版本为3.102.xxx。
正如我所说,该应用程序在eclipse中启动时工作,所以我可能在我的内置产品中缺少一个插件?我看到安装了swt.gtk插件,但我不知道还有什么要找。独立应用程序也可以在Ubuntu中正常运行。
答案 0 :(得分:0)
eclipse.ini中的以下条目使浏览器控件能够在CentOS 6.7中使用样式SWT.NONE
missed_dates
这还要求安装受支持的xulrunner版本(1.9.2适用于我),正如SWT FAQ. NB中精确指定的:以下警告在FAQ中说明可能使用firefox作为xulrunner实例:
还要注意一个包含Gecko版本的Firefox版本 与上面的Mozilla版本相关也可以使用 Eclipse 3.1和更新版本(仅限Linux),前提是它已经编译完毕 带有可链接的Gecko库。重要的是要注意Firefox 从mozilla.org下载不符合此标准,但Firefox 主要Linux发行版中包含的安装通常会这样做 在没有安装XULRunner的情况下。试图使用 没有可链接的Gecko库的Firefox安装会引发错误 使用消息"不再处理[NS_InitEmbedding ... error -2147221164]"。
我的CentOS 6.7系统上安装的firefox似乎没有链接的gecko库,但我可能在某些时候手动安装了不同的版本。
似乎没有办法在CentOS 6.7上使用Eclipse 4.4或更新的webkit,因为每个FAQ都需要gtk3,我发现在CentOS 6.x上安装gtk3的唯一参考说这将是非常困难的
常见问题解答让我很困惑。它似乎与自己相矛盾,说一个兼容的xulrunner可以用于eclipse 4.4然后说它不能,因为eclipse 4.4"默认使用GTK 3"并且xulrunner尚未移植到gtk3。我的SWT安装似乎是为gtk3构建的,但它并没有阻止我使用xulrunner。此外,默认情况下使用gtk3似乎暗示可以使用某些其他版本的gtk,但是几小时的搜索没有提供相关信息。
如果有人知道如何使用gtk2使用eclipse 4.4,我将非常感激。我对于在CentOS 6.x中运行的eclipse 4.4应用程序被迫使用gecko感到不高兴。
编辑:我发现一个很大的未解答的问题是,当我从eclipse中启动应用程序时,浏览器不会使用样式SWT.WEBKIT抛出异常并且没有设置XulRunnerPath属性。我真的很想了解这一点。