从Windows切换到Mac对于我的Java开发,有哪些问题或好处需要我注意?

12

我可以选择在Windows笔记本电脑或Mac笔记本电脑上进行Java开发。在做出决定之前,我想了解一下使用Mac笔记本电脑是否存在任何问题或优势。

我听说的一件事是,Java JDK版本对于Mac来说不总是最新的,需要等待一段时间。

我的环境很简单:Eclipse与Java EE 5.0。

13个回答

6

针对您的配置,没有任何问题...

有时您需要等待发布,但这并不是真正无法克服的问题...

然而,我遇到了一些Eclipse的问题。它经常崩溃,但我正在进行密集的工作...

其中一个问题是快捷键,听起来很愚蠢,但我是一个狂热的快捷键使用者,控制和苹果键以及alt之间的切换有时很难记住...


3
+1 我本来也想说同样的话。这并不傻,我们可能每天使用这些按键数千次。我在家用Mac,在工作中使用Windows,我的手指总是需要适应 - 就像简单而频繁的到达行末、重构等操作一样。这并不致命,但确实会造成不适。 - Carl Manaster
如果这真的困扰你,你可以在“系统偏好设置”中交换它们的映射。 :-) - xyz
但是你会覆盖MacOSX的快捷键,我认为...我尝试过,有一些冲突不容易解决... - LB40
你尝试过更改eclipse.ini文件以允许更多的内存吗?至于快捷键,我的女朋友有一台我经常使用的Mac。只需告诉她“亲爱的,我不知道怎么回事,我的笔记本电脑出了点问题” :-) - Ascalonian

3

有趣的是,苹果对Java 1.6的支持仅限于64位英特尔架构。如果您使用的是32位CPU,则只能使用1.5版本。


目前对我来说这很好用。我们公司目前只能使用1.5版本的Java。有传言要升级到Java 1.6。然而,我认为Mac笔记本是64位的。我可能错了。谢谢! - Ascalonian
我已经为我的32位MacBook Pro编译了JDK 7。http://kingsfleet.blogspot.com/2009/03/building-jdk-7-on-mac.html http://infernus.org/2009/02/building-java-7-on-mac-os-x/我不需要GUI,所以这个很好用。 - Blair Zajac

2
我在Mac上进行Java开发时没有遇到过重大问题(通常我会在Linux和Mac平台上进行开发)。关于sdk,与Linux/Windows版本相比,它们的发布确实会有所延迟。
您可以在Apple Developer Connection找到最新的jdk,您需要一个苹果开发者帐户(免费)。建议保留从Apple下载的图像,因为可能会出现这样的情况:经过一段时间后,它们不再可用,特别是对于旧版本。
关于swing开发,我认为SpringLayout处理方式有点不同(一些弹簧缺失),因为在Linux上开发的一些JPanels会在Mac上产生一些警告。在Mac上开发的JPanels在其他平台上运行良好。

谢谢您让我知道。我使用GridBagLayout作为我的布局管理器。我也感谢提供的Apple Developer Connection链接。非常感谢。 - Ascalonian

2

不要忘记,您仍然可以运行Windows(通过虚拟机或本地安装BootCamp),所以即使只是因为更喜欢这台机器,Mac仍然值得考虑。


这是非常正确的,但是我的公司需要购买一台Mac笔记本电脑和一份Windows XP的副本。我担心他们不会同意,特别是因为Mac笔记本电脑更贵。如果是在家里,我肯定会这样做的。:-) 谢谢你的建议。 - Ascalonian

2

我使用Mac Pro进行Java开发(使用Eclipse和Java 5),但是Eclipse非常不稳定。可能是因为它是32位的原因,我总是遇到内存溢出错误。因此,我在VMWare Fusion下运行Linux虚拟机,并在其中进行开发。


我不确定Eclipse,但我知道NetBeans允许您配置JVM的内存限制,我认为Eclipse也会让您这样做。您尝试过调整吗?这可能有助于解决OutOfMemory异常问题。 - Herms
我同意Herms的观点。我只是直接在eclipse.ini文件中更改了我的JVM设置。当然,我不知道在Mac中如何设置。 - Ascalonian
我已经尝试了所有可能的调整。这是我的eclipse.ini文件中的vmargs部分: -vmargs -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread -Xms1024m -Xmx1024m -XX:PermSize1024M -XX:MaxPermSize1024M -XX:-UseParallelGC -XX:-UseConcMarkSweepGC -XX:+AggressiveOpts -Dosgi.requiredJavaVersion=1.5 -Dorg.eclipse.swt.internal.carbon.smallFonts此外,如果超过1024M,Eclipse就会崩溃。我知道我可以为其他JVM实例提供更多内存,所以这不是JVM的问题,而是Eclipse的问题。最近的Eclipse M*版本在OSX上支持64位JVM。 - Rohit
错误..换行符被去掉了。 - Rohit
1
我使用一台Macbook(早期的Intel非Core-2-Duo版本),在使用过程中遇到了一些长时间挂起和内存问题(即使调整了Xms Xms等参数),但是我发现如果使用打包选项(例如,我使用Jboss Developer Studio),这些问题大多都可以解决。 - Damo

1
在我的OS X上,Eclipse工作得很好,IntelliJ Idea也很不错(我自己没有在OS X上使用过它,但认识很多人使用过)。此外,随Apple开发者工具一起提供的Shark分析器能够很好地处理Java应用程序(你需要将“-XrunShark”添加为VM属性),允许你在运行时无需任何麻烦即可附加。而且它是免费的,这很好。

我真的很喜欢IntelliJ Idea的外观...但是它不像Eclipse那样免费。我一定会看看Shark分析器。谢谢! - Ascalonian

1

1
我能想到的唯一问题是,根据我的非常有限的经验,Mac OS X(10.5.x)使用默认库JVM 1.5,而最新版本是JVM 1.6,因此在某些情况下,如果要使用JVM 1.6中的新功能/类,则必须手动更改。在Eclipse中非常简单。
项目->属性->Java Build Path->库。

谢谢你的回复!我们实际上需要在这里使用Java 1.5。但是如果/当我们升级到6.0,我会记住这一点。 - Ascalonian
您可以使用/Applications/Utilities/Java/Java Preferences.app在系统上设置默认的JAVA。 - Blair Zajac


1

我经常在两者之间来回工作,唯一偶尔会让我感到困扰的是布局管理器。它们喜欢在不同的操作系统中以不同的方式定位组件。当然,这很容易解决,但要注意避免犯错。


你使用过哪些布局管理器?我主要使用GridBagLayout和一点BorderLayout。 - Ascalonian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接