我在使用 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/