SWT-Browser 组件之XULRunner

XULRunner 是一个mozilla runtime 包,用来引导XUL+XPCOM的应用程序,包括安装,升级,和卸载这些程序。
每一个火狐浏览器都需要一个XULRunner 包。

在使用SWT组件Browser时如何指定一个XULRunner来使用

  • 在创建Browser对象之前调用下面语句设置:
System.setProperty("org.eclipse.swt.browser.XULRunnerPath", xulfolder.getAbsolutePath());
  • 在自动程序时添加VM参数
-Dorg.eclipse.swt.browser.XULRunnerPath=...
  • 提供一个XULRunnerInitializer 的实现
    1. 创建一个org.eclipse.swt 插件的fragment类型插件
    2. 创建类org.eclipse.swt.browser.XULRunnerInitializer 在这个fragment中
    3. 在这个类中创建一个静态代码块 来设置 org.eclipse.swt.browser.XULRunnerPath 属性
package org.eclipse.swt.browser;

import java.io.*;
import java.net.*;
import org.eclipse.core.runtime.*;
import org.osgi.framework.Bundle;

public class XULRunnerInitializer {
    static {
        Bundle bundle = Platform.getBundle("org.mozilla.xulrunner.win32.win32.x86"); //$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.getAbsolutePath()); //$NON-NLS-1$
                } catch (IOException e) {
                    // log the exception
                } catch (URISyntaxException e) {
                    // log the exception
                }
            }
        }
    }
}
发布了63 篇原创文章 · 获赞 55 · 访问量 2472

猜你喜欢

转载自blog.csdn.net/devin_xin/article/details/105077499
swt