当前位置: 首页 > 面试题库 >

线程“主” org.eclipse.swt.SWT中的异常错误:swt.mozilla中的XPCOM错误0x80004005

东郭元魁
2023-03-14
问题内容

遵循使用Mozilla浏览器的SWT代码,但它给我一个错误xpcomm错误0x80004005。

import java.awt.GridLayout;
import java.io.File;

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.internal.dnd.SwtUtil;

public class Newbrowser {
    public static void main(String a[]) {
        Display display = new Display();
        Shell shell = new Shell(display);
        /* Composite controls = new Composite(shell, SWT.NONE); */
        shell.setText("Browser");
        String pathToXulrunner = "C://Program Files (x86)/Mozilla XULRunner/";

        System.setProperty("org.eclipse.swt.browser.XULRunnerPath", pathToXulrunner);

        /*
         * System.setProperty("org.eclipse.swt.browser.XULRunnerPath",
         * pathToXulrunner);
         */
        System.setProperty("org.eclipse.swt.browser.MOZ_PROFILE_PATH", new File("").getAbsolutePath());
        Browser browser = new Browser(shell, SWT.MOZILLA);
        shell.setLayout(new FillLayout());
        shell.open();

        FormData data = new FormData();

        data.top = new FormAttachment(0, 0);
        data.bottom = new FormAttachment(100, 0);
        data.left = new FormAttachment(0, 0);
        data.right = new FormAttachment(100, 0);
        browser.setLayoutData(data);
        browser.setUrl("www.google.com");

        // Set up the event loop.

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                // If no more entries in the event queue
                display.sleep();
            }
        }
        display.dispose();
    }
}

请帮我解决这个问题。提前致谢。


问题答案:

从此处使用XULRunner的注意事项来看,似乎使用10.x版是正确的。

通过下载XULRunner
10.0.4esr,
我可以使您的代码运行。我按照此答案中给出的安装步骤进行操作,并bin特别指向该目录。

  1. 从此目录下载xulrunner-10.0.4esr.en-US.win32.sdk.zip
  2. 提取内容并将xulrunner目录移动到某个位置(我曾经用过c:/xulrunner,但是在您的情况下也C:/Program Files (x86)/XULRunner应该没问题。
  3. 您可以使用VM参数(-Dorg.eclipse.swt.browser.XULRunnerPath),也可以System.setProperty()按原样使用。请确保您指定的路径指向bin目录,而不仅仅是顶层xulrunner目录。

确保您具有该版本的XULRunner(尤其是SDK),并验证您指向的文件路径是否存在。根据您将下载文件解压缩的位置,您可能需要替换:

String pathToXulrunner = "C://Program Files (x86)/Mozilla XULRunner/";

与:

String pathToXulrunner = "C:/Program Files (x86)/Mozilla XULRunner/bin";

我还在运行带有SWT 4.5.2的64位Windows 10,因此我们应该具有相同的设置。

编辑:我刚刚意识到我正在使用32位库(32位Java和32位SWT)执行此操作。因此,如果您偶然使用32位库,则应该可以使用。根据此答案,您应该能够将XULRunner
24与64位JRE一起使用,但是我无法使它正常工作。

编辑2:对于64位库,我在这里找到xulrunner-1.9.2.25的bin目录的内容:https
://osdn.net/projects/sfnet_runawfe/downloads/SRC%20and%20BIN%20files/extras/xulrunner
-1.9.2.25-win64.zip/

下载此文件后,我就可以运行您的代码了。请注意,这是bin目录的内容(等同于下载运行时而不是SDK),因此您可以bin从的文件路径中排除pathToXulrunner

这分钟我不能正确,但是我将在其他地方托管它,稍后再更新。

编辑3:我将其重新托管为 xulrunner-1.9.2.25.en- US.win64.zip



 类似资料:
  • 问题内容: 我正在使用Eclipse编译和运行我的Java代码。 这是我得到的错误。 这是我的代码 File.txt 我在项目的同一文件夹中创建了file.txt。 问题答案: 您的文件应直接位于项目文件夹下,而不应位于其他任何子文件夹内。 因此,如果您的项目文件夹为,则其文件夹结构(虽然不完整)应类似于:- 它不应该是文件夹。 或者,您可以提供以下相对于项目文件夹的路径,以在以下位置搜索文件:-

  • 问题内容: 这是代码: 错误: 跑: 请帮助我解决此错误。我正在使用Windows Vista OS。 谁能建议我如何以.3gp格式存储文件?请帮助 问题答案: 方法内部的第202行的某些对象引用是在代码尝试使用点运算符访问/调用它时进行的。 例如 解决方案实际上很简单。只需实例化它即可确保它不为空: …或在访问/调用之前简单地执行nullcheck:

  • 我是Java公司的JSON新手,并试图使用maven和Eclipse来探索它。 这是我的JSON文件。 我的pom.xml文件如下所示 我试图列出所有的jsonp事件。下面是相同的代码段。 运行上述文件后,我得到以下错误。 谁能帮我找出哪里不对劲。

  • 问题内容: 我正在尝试执行以下代码: 但这给了我这个错误: 我已将SLF4J添加到引用的库中,但不知道为什么这不起作用。 在WIN 7上运行,在Eclipse和NetBeans中尝试过 任何想法? 问题答案: 下载SLF4J并将slf4j-api-1.7.2.jar文件放到您的类路径中。

  • 我很难理解这个代码有什么问题。Dr.Java一切都很好,但是在另一个名为edhesive的代码运行平台上(我就是在这个平台上被分配这个项目的),它给我一个错误。我已经检查了所有我认为出错的地方,但仍然不知道哪里出了问题。 在edhesive上运行后,我得到了这个错误 有人能帮帮我吗?

  • 问题内容: 我在Java程序上遇到问题。线程“主”中的异常 是我得到的错误。我真的可以使用一些帮助,因为我在这个地方呆了几个小时… 问题答案: 这就是问题 因为是,所以每次使用它都会出现,直到您对其进行初始化。所以这: 将失败。 可能的解决方案是在声明时将其初始化: IMO比解决此异常更为重要的事实是,您应该学会 阅读 stacktrace并 理解其 含义,以便可以发现问题并加以解决。 java.