Java,Mac OS,Windows和Linux

时间:2012-09-24 18:38:41

标签: java windows linux macos

我已经从Linux(Ubuntu)迁移到Mac OS。我用Java(swing)编写了一个应用程序。我在windows和linux中成功运行了相同的代码但在mac os中我遇到了一些问题。

以下是评论中的代码和问题:

public MainForm() {
    setResizable(false);
    setAutoRequestFocus(false); // This method is undefined for type MainForm
    initComponents();
}

另:

Object[] industries = jList1.getSelectedValuesList().toArray(); //  This method is undefined...

最后一个:

setType(Type.UTILITY); // Type can't be resolved as variable

当然我无法编译它。

Java版本: Ubuntu的:

java version" 1.7.0_07" Java(TM)SE运行时环境(版本1.7.0_07-b10) Java HotSpot(TM)服务器VM(版本23.3-b01,混合模式)

的MacOS:

java版" 1.6.0_35" Java(TM)SE运行时环境(版本1.6.0_35-b10-428-11M3811) Java HotSpot(TM)64位服务器VM(版本20.10-b01-428,混合模式)

我无法更新java(因为它似乎是mac的最新版本)。我想现在在Mac上开发这个应用程序。

2 个答案:

答案 0 :(得分:2)

在为您提供问题的方法之后,明确表示您并未在每个平台上运行相同的JDK。具体来说,您的Windows和Linux盒子运行的是JDK 1.7,而您的Mac OS X盒子运行的是JDK 1.6或更早版本。有关在Mac上使用JDK 1.7的信息,请参阅this question

事实上,您不需要在每个平台上编译您的应用程序。 Java是一个"编译一次,到处运行"语言。编译器生成的字节码适用于每个平台,无论编译它的是哪个平台,只要您自己没有在代码中引入任何系统依赖关系。

换句话说,只要您的代码与平台无关,Java本身就是与平台无关的。您的问题只是一个JDK版本错误,因此将Mac的JDK版本升级到1.7将解决此问题。

请注意,您无法在Java 6或更低版本中运行使用1.7源目标编译的二进制文件。您可以在编译时将源目标更改为1.6,但这将阻止您使用Java 7 API(例如getSelectedValuesList方法)。

答案 1 :(得分:1)

Linux 上创建executable jar,然后在 Mac 上执行它。它应该运作良好。
如果您想在另一个操作系统上开发您的应用程序,请检查JDK是否具有相同的版本 完整版应该是等于。 1.6_ 31 也应该等于