JAVA SWT/AWT Eclipse Mac OSX Java Cocoa CompatibilityMode Enabled

标签 java cocoa swing swt awt

我正在开发一个相当复杂的 Java 应用程序,混合了 SwingSWT。每当我启动应用程序时,这是控制台输出(应用程序未显示):

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 OSX 上运行的唯一方法是将 Eclipse 项目导出到 JAR 可执行文件。好吧,这很烦人。有人可以向我解释如何设置上面的这些属性吗?有什么妙招吗?

编辑:我正在使用:

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 

最佳答案

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

修复有点奇怪。

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

添加 JRE 有点烦人,因此在执行此操作之前请记下“Location”路径字符串。您会将它指向同一个地方,只需更改“Type”属性即可。

所以,我的回答是错误的。如果您只使用 Swing/AWT,这是相关的,但很幽默,在发布这篇文章后我不得不立即编写一个 SWT_AWT boondoggle,即使使用上述设置,我在我的 Mac 上也遇到了同样的错误。我怀疑这与 Swing/AWT 和 SWT 在事件循环方面的差异有关(SWT = 自带,Swing = 由 JVM 提供)。我在 IntelliJ IDEA 12 中也遇到了错误,所以这不仅仅是 Eclipse 问题。

关于JAVA SWT/AWT Eclipse Mac OSX Java Cocoa CompatibilityMode Enabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13951883/

相关文章:

java - 如何在 Swing 应用程序中创建 HttpServletRequest 实例

java - 覆盖动态创建的各个 JTable 单元格的单元格编辑器

java - java.awt.EventQueue.getCurrentEventImpl 中的 NullPointerException

java - 将对象添加到 ListView - ANDROID

java - 为什么没有 java.lang.Class 的子类?

cocoa - 在 Cocoa 应用程序中显示硬盘上所有 PDF 文件的列表

javascript - 如何使用 Swift 将鼠标悬停在 URL 上进入 WkWebView

ios - 正确管理addObserverForName :object:queue:usingBlock:

java - GridBagLayout 未对齐

java - SWT - 如何更改按钮中文本的颜色?