java - SWT.WebKit 无法加载 : No More Handles - [Safari must be installed to use a SWT. WEBKIT 风格的浏览器]

标签 java browser webkit swt

我在使用 SWT.WEBKIT 作为基于 SWT 的 Java 应用程序的浏览器时遇到问题,现在在新计算机上启动应用程序时得到此堆栈跟踪:

Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Safari mus
t be installed to use a SWT.WEBKIT-style Browser]
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.browser.WebKit.create(Unknown Source)
        at org.eclipse.swt.browser.Browser.<init>(Unknown Source)
        [...]

现在,我确实遵循了 SWT FAQ 中有关如何使用 Webkit 的所有步骤;安装了 Safari,JVM 是 32 位(就像 Safari 一样),并且它在 Windows XP 64 位计算机上运行。奇怪的是,它在另一台 WindowsXP 64 位机器上运行良好!关于如何调试这个有什么想法吗?

编辑:似乎有一个关于 Java 1.7.0u6 及更高版本提供自己的 libxml2.dll 的错误,Java 尝试在 Webkit 自己的 libxml2.dll 之前加载该错误。查看此错误报告了解更多信息:https://bugs.eclipse.org/bugs/show_bug.cgi?id=388469

最佳答案

原因是 Apple 将最新 Safari 安装程序中的“Apple Application Support”文件夹从

C:\Program Files (x86)\Common Files\Apple\Apple Application Support\

C:\Program Files (x86)\Common Files\Apple\

SWT 根本找不到它 ( see this bug )。

在添加新文件夹的 SWT 支持之前,有两种解决方法:

  • 安装Apple QuickTime或 iTunes - 他们仍然将“Apple Application Support”放置在 C:\Program Files (x86)\Common Files\Apple\
  • 或者将 APPLE_INSTALLATION_DIR\Apple Application Support\ 添加到 PATH 环境变量

关于java - SWT.WebKit 无法加载 : No More Handles - [Safari must be installed to use a SWT. WEBKIT 风格的浏览器],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808436/

相关文章:

Java 如何为循环中的每次迭代播放声音?

javascript - Web 应用程序不适用于 iPad,但适用于桌面浏览器

javascript - 浏览器 - 强制重新加载删除cookie?

php - 浏览器之间通过 PHP 通信

c - 如何关闭右键单击上下文菜单

javascript - 触发键盘事件,webkit 键盘事件不会触发

java - 使用Java Stream将List和String的列表转换为Map

java - 在 Java 中的文本周围添加 HTML 标签

java - Jsoup 嵌套表解析不适用于搜索页面结果表

html - 当中间的层具有指定的高度时,在不透明度过渡期间不应用 TranslateZ