4

在 Mac OSX 64 位和 Oracle Java 7 上,文件选择器对话框似乎无法正常工作:

FileDialog dlg = new FileDialog(shell, SWT.OPEN);
dlg.open();

一个主要问题是文件预览(选择文件时出现的最右侧窗格)不起作用:微调器没有停止,CPU 使用率增加。随机地,另一个问题是文件夹内容显示为空。

使用官方 Apple Java 6 包一切正常。我尝试了几个版本的 SWT(4.2.1、4.2.2、4.3,以及 beta 4.4 版本)。

有人知道解决方法吗?这可以在 SWT 级别修复,还是 Java 7 问题?

4

2 回答 2

2

我也遇到过这个问题。它似乎是以下(Java 7、Eclipse 3.7.2 和 OSX 10.9)的直接组合

我找到了这个解释:https://bugs.eclipse.org/bugs/show_bug.cgi?id=420682(错误 420682 - 在 Indigo 中,打开文件对话框仅在 OS X Mavericks (10.9) 中出现一次)

我希望这对您有所帮助,但基本信息如下:

  • 升级到基于 4.x 的 RCP 捆绑包,或至少升级到 3.8.x
  • 不要使用 Java 7(我不推荐)
于 2014-01-07T21:27:04.437 回答
1

问题的核心似乎是 -XstartOnFirstThread Java 标志。一个技巧是避免使用这个标志,并自己实现相关的行为(即,在第一个线程上启动 SWT)。

幸运的是,一个非常有用的 Eclipse 贡献者 - Silenio Quarti - 已经这样做了,请参阅https://bugs.eclipse.org/bugs/show_bug.cgi?id=389486#c5。警告:要集成到非 Mac IDE 中,需要重构此源代码,并且对 org.eclipse.swt.internal.** 的所有引用都必须通过反射完成。

在 Oracle 和/或 Apple 修复 SDK 版本 7 之前,这是迄今为止我发现的最好也是唯一的解决方法。

于 2013-07-30T18:01:56.133 回答