JAVA SWT/AWT Eclipse Mac OSX Java Cocoa CompatibilityMode Enabled

2022-09-04 04:53:23

我正在开发一个相当复杂的应用程序混合和.每当我启动应用程序时,这是控制台输出(并且应用程序不显示):JavaSwingSWT

2012-12-19 12:45:45.359 java[3442:f07] [Java CocoaComponent compatibility mode]: Enabled
2012-12-19 12:45:45.360 java[3442:f07] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000

我遵循了许多指南和教程设置:

  1. System.setProperty("com.apple.awt.CocoaComponent.CompatibilityMode", "false");
  2. -XstartOnSecondThread
  3. --launcher-on-secondThread

现在我真的没有任何线索。使我的应用程序正常工作的唯一方法是.好吧,这很烦人。有人可以向我解释如何设置上面的这些属性吗?有什么魔术吗?Mac OSXexport the Eclipse project to a JAR executable

编辑:我正在使用:

OSX Mountain Lion 10.8.2 ,
Java 1.6u37 64bit,
SWT 4.2 cocoa x64,
Windows XP ,
Java 1.6u37 32bit,
SWT 4.2 32bit 

答案 1

我曾多次遇到这个问题,因为我在一家每个人都使用Eclipse的Java商店工作,而且我是OS X用户。

修复有点奇怪。

您需要从“已安装的 JRE”首选项中删除当前的 JRE,然后再次添加它。执行此操作时,请确保选择“标准 JVM”而不是“Mac OS X JVM”。

添加 JRE 有点烦人,因此在添加之前,请记下“位置”路径字符串。您将它指向同一位置,只需更改“Type”属性即可。

所以,我的答案是错误的。如果您只做Swing / AWT,这是相关的,但是在发布此内容后,我不得不立即幽默地编写一个SWT_AWT,即使使用上述设置,我也在Mac上遇到了相同的错误。我怀疑这与Swing / AWT和SWT之间关于事件循环的差异有关(SWT =自带,Swing =由JVM提供)。我也在IntelliJ IDEA 12中得到了错误,所以它不能只是一个Eclipse问题。


答案 2

我在Macbook中遇到了同样的问题,因为我可以看到你正在下载Eclipse Indigo,这是你能做的最好的事情。Juno有错误,也很慢,因为它比以前的版本消耗更多的性能。我认为Indigo是最好的选择。我知道Java是可移植的和多平台的,但是在使用Apple设备之后,我发现了与Java的某种不兼容性,我认为不是因为Java,而是因为iOS,这就是为什么对我来说,我能做的最好的事情就是用Ubuntu安装虚拟机。因此,您可以尝试使用您喜欢的Linux发行版。


推荐