我在使用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 64Bit机器上。奇怪的是它在另一台WindowsXP 64bit机器上工作正常!关于如何调试这个的任何想法?
编辑:似乎有一个关于Java 1.7.0u6及更高版本的Bug提供了他们自己的libxml2.dll,Java试图在Webkit自己的libxml2.dll之前加载它。查看此错误报告了解更多信息:https://bugs.eclipse.org/bugs/show_bug.cgi?id=388469答案 0 :(得分:6)
原因是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支持之前,有两种解决方法:
C:\Program Files (x86)\Common Files\Apple\
APPLE_INSTALLATION_DIR\Apple Application Support\
添加到PATH环境变量答案 1 :(得分:1)
事实证明,问题是Safari安装没有安装Apple Application Support;仔细比较两台机器后,我找到了一台安装程序,将其复制并运行,瞧,错误消失了。
有人对此有所了解吗?此外,任何人都可以帮助我使用这个安装程序的(合法)链接,以供将来参考和更新(不,谷歌没有帮助)?