SWT FileDialog在使用Oracle Java 7的Mac OSX上无法正常运行

时间:2013-07-23 02:04:12

标签: java swt osx-mountain-lion java-7

对于使用Oracle Java 7的Mac OSX 64位上的SWT,文件选择器对话框似乎无法正常工作:

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问题?

2 个答案:

答案 0 :(得分: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(我不推荐那个)

答案 1 :(得分: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之前,这是迄今为止我发现的最好和唯一的解决方法。