SWT.WebKit无法加载:不再处理 - [必须安装Safari才能使用SWT.WEBKIT样式的浏览器]

Lyr*_*ven 2 java browser swt webkit

我在使用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)
        [...]
Run Code Online (Sandbox Code Playgroud)

现在,我确实遵循了SWT常见问题解答中关于如何使用Webkit的所有步骤; 安装了Safari,JVM是32位(就像Safari一样),它运行在Windows XP 64Bit机器上.奇怪的是它在另一台WindowsXP 64bit机器上工作正常!关于如何调试这个的任何想法?

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

Yah*_*hor 6

原因是Apple在最新的Safari安装程序中移动了"Apple Application Support"文件夹

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

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

SWT根本找不到它(见这个bug).

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

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