gpt4 book ai didi

java - Eclipse RCP 中的 Firefox

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:13 25 4
gpt4 key购买 nike

我正在尝试使用 Firefox 作为在 Eclipse RCP 插件内运行的 SWT 浏览器。

我尝试使用以下代码加载 XULRunner,我发现 here :

    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)

如果我删除 XULRunner 路径之前的 file:///,我会在 XULrunner 3.6.25 中收到错误 c 不是注册协议(protocol)

有人知道这个特定的 XPCOM 错误意味着什么以及如何修复它吗?

最佳答案

构建于 this answer ,这些是让 Firefox 在 Eclipse 中为我工作的步骤:

  1. 安装 Ajax 工具框架 ( http://wiki.eclipse.org/ATF/Installing )
  2. 在“运行配置...”->“插件”下添加 org.mozilla.xulrunnerorg.mozilla.xulrunner.win32.win32.x86
  3. 使用以下代码在 swt.browser 中启动 Firefox:

    Bundle bundle = Platform.getBundle("org.mozilla.xulrunner"); //$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.DefaultType",
    "mozilla");
    System.setProperty(
    "org.eclipse.swt.browser.XULRunnerPath", file.getAbsolutePath()); //$NON-NLS-1$

    } catch (IOException e) {
    e.printStackTrace();
    } catch (URISyntaxException e) {
    e.printStackTrace();
    }
    }
    } else {
    System.err.println("Could not find XULrunner bundle");
    }
    Browser webBrowser = new Browser(parent, SWT.MOZILLA);
    GridData grid = new GridData(GridData.FILL_BOTH);
    webBrowser.setLayoutData(grid);
    // Prepending "file://" prevents the "<driveletter> is not a registered protocol" error
    String graphUrl = "file://C:/Users/you/yourGraph.html"
    webBrowser.setUrl(graphUrl);

关于java - Eclipse RCP 中的 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17653843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com