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 的可移植性的主要内容,如果未能解决你的问题,请参考以下文章