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 的实现
- 创建一个org.eclipse.swt 插件的fragment类型插件
- 创建类org.eclipse.swt.browser.XULRunnerInitializer 在这个fragment中
- 在这个类中创建一个静态代码块 来设置 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
}
}
}
}
}