我已经从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上开发这个应用程序。
答案 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 也应该等于