Java Ubuntu Eclipse/SWT 中的 XULRunner 错误

Java XULRunner error in Eclipse / SWT in Ubuntu

XULRunner 有什么问题 所以,我有下一个环境:

所以,

    public class Main {
       public static void main(String[] args) {

            System.setProperty("org.eclipse.swt.browser.DefaultType", "mozilla");
            System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "/opt/xulrunner/xulrunner");

            Display display = new Display();
            final Shell shell = new Shell(display);

            Browser webBrowser = new Browser(shell, SWT.MOZILLA);
            GridData grid = new GridData(GridData.FILL_BOTH);
            webBrowser.setLayoutData(grid);
            String graphUrl = "http://google.com";
            webBrowser.setUrl(graphUrl);
       }
    }

但在 Eclipse 中我看到:

Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Browser style SWT.MOZILLA and Java system property org.eclipse.swt.browser.DefaultType=mozilla are not supported with GTK 3 as XULRunner is not ported for GTK 3 yet] at org.eclipse.swt.SWT.error(Unknown Source) at org.eclipse.swt.browser.MozillaDelegate.<init>(Unknown Source) at org.eclipse.swt.browser.Mozilla.create(Unknown Source) at org.eclipse.swt.browser.Browser.<init>(Unknown Source) at Main.main(Main.java:31)

没有帮助:

How to install XULRunner for Eclipse

How to make SWT Browser control use Mozilla instead of IE on Windows?

你在这里遇到的问题 Xulrunner 没有 GTK3 端口。默认情况下,eclipse 在 GTK3 模式下运行。所以它无法加载 Xulrunner 库。请以 GTK2 模式启动 eclipse 并尝试。你可以通过

  • 导出SWT_GTK3=0 或
  • 将这些行添加到 eclipse.ini(请注意这必须在 vmargs 之前)

    -launcher.GTK_version 2

XULRunner 尚未移植到 GTK3,因此您必须通过编辑 eclipse.ini 使其在 GTK2 模式下 运行,您可以在 eclipse 安装目录中找到它。

检查您的 eclipse.ini 是否包含以 --launcher 开头的行,例如

--launcher.appendVmargs

将以下两行放在该行之前:

--launcher.GTK_version
2

是的,它们需要在不同的行上。

如果找不到以 --launcher. 开头的行,请找到仅显示 --vm 的行并将这两行放在它之前的行上,如果没有找一个--vm行,放在--vmargs.

之前那一行

您最终应该会得到一个如下所示的文件。请注意,这只是一个示例:

--launcher.GTK_version
2
--launcher.appendVmargs

--launcher.GTK_version
2
--vm (or --vmargs)