我正在尝试使用 Firefox 作为在我的 Eclipse RCP 插件中运行的 SWT 浏览器。
我尝试使用在此处找到的以下代码加载 XULRunner :
Bundle bundle = Platform.getBundle(PLUGIN_NAME); //$NON-NLS-1$
if (bundle != null) {
URL resourceUrl = bundle.getResource("xulrunner"); //$NON-NLS-1$
if (resourceUrl != null) {
try {
URL fileUrl = FileLocator.toFileURL(resourceUrl);
File file = new File(fileUrl.toURI());
System.setProperty(
"org.eclipse.swt.browser.XULRunnerPath", "file:///" + file.getAbsolutePath()); //$NON-NLS-1$
System.setProperty("org.eclipse.swt.browser.DefaultType",
"mozilla");
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}
Browser webBrowser = new Browser(parent, SWT.MOZILLA);
我正在使用 Windows 7 x86 和 Eclipse Indigo。我试过 XULrunner 3.6.25 和 10。我使用的 Firefox 版本是 10 和 22。
不管是什么版本,它都会崩溃,给出这个堆栈跟踪:
org.eclipse.swt.SWTError: XPCOM error -2147467259
at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:2502)
at org.eclipse.swt.browser.Mozilla.initXULRunner(Mozilla.java:2464)
at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:672)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:99)
如果我删除file:///
XULRunner 之前的路径,我会c is not a registered protocol
在 XULrunner 3.6.25 中得到错误。
有谁知道这个特定的 XPCOM 错误是什么意思以及如何解决它?