Java Swing 应用程序到 OSX 的可移植性

Posted

技术标签:

【中文标题】Java Swing 应用程序到 OSX 的可移植性【英文标题】:Portability of Java Swing applications to OSX 【发布时间】:2008-10-22 06:19:28 【问题描述】:

最近我编写了一个非常基本的 Java Swing 程序,其中包含几个文本字段和按钮。该程序在带有 Java 1.5 的 Ubuntu 上运行良好。但是当我尝试在 OSX (10.4) 上运行它时,主窗口显示正确,但程序似乎没有响应。无论我点击哪个按钮,似乎都没有发生任何事情。

我对 Mac OSX 几乎一无所知,所以我可能做错了什么?

【问题讨论】:

你能把代码简化为一个简单的测试用例并发布代码吗? 您在 OS X 上运行的是哪个 Java 版本? 我也有同样的问题。运行 OSX 10.5.7、Java 1.6.0_13。 【参考方案1】:

可能是您在 Event-Dispatch 线程之外执行某些操作吗?例如,您可能在main 线程中创建、显示然后修改JTextArea

【讨论】:

【参考方案2】:

Java 程序通常在 OS X 中运行良好 - 例如,Sound Bridge Commander 是一个在 Mac 和 Linux 上运行良好的 Java 应用程序。不过,我肯定会确保 Mac 盒子是最新的。您提到它运行的是 Tiger,这意味着它已经有几年的历史了,它的 JVM 可能与您编译的 JVM 不兼容。

【讨论】:

【参考方案3】:

您可能在类路径上有 SWT。这听起来类似于我遇到的问题。如果我没记错的话,mac SWT jar 使用某些启动挂钩来自动启动。然后 SWT 会干扰 Swing。

【讨论】:

【参考方案4】:

这可能是因为您的某些代码是为 Java 5 而不是 Java 1.4 编译的,所以每当您尝试调用它时,JVM 就会抛出一个异常,而您却看不到?

【讨论】:

【参考方案5】:

您有没有机会将代码放到网上某个地方让我们尝试一下?我实际上也在使用 10.4,所以这不是问题。

【讨论】:

以上是关于Java Swing 应用程序到 OSX 的可移植性的主要内容,如果未能解决你的问题,请参考以下文章

Java Swing OSX 窗口菜单复选标记

是否可以将 Facebook iOS API 移植到普通的 OSX 桌面应用程序?

摆动菜单 Java 7 mac osx

java swing的可输入可多选的下拉框

垂直视图中的可拖动组件 (Java Swing)

开发工具-Java开发必知工具