自從大學以來 NetBeans 就一直是我撰寫 Java 程式語言的開發工具.
在我轉換作業系統之後, 其實我一直沒有好好研究如何在 OS X 上運作 Java, 趁著今天 Apple 發佈了 Java 的更新, 來寫篇如何在 OS X 上設定 NetBeans.
這次的更新是把 Java SE 的版本由原先的 1.6.0_07 一口氣昇到了 1.6.0_13, 或許熟悉 Java 的人會覺得, 這在其它作業系統不是早就有了!? 但因 Mac OS X 上的 Java 環境是由 Apple 自行維護的, 所以這得看 Apple 對 Java 的掌握與開發進度. 事實上, 這個更新我期待了很久, 因為我一直很想試試在 1.6.0_10 這個重大改版後所新增的跨平臺 Look and Feel-Nimbus.
所謂 Look and Feel (之後簡稱 LAF) 可以想成是佈景主題這樣的東西, 但為什麼我覺得 Nimbus 很特別!? 除了 Nimbus 是個很漂亮的向量 LAF, 更重要的是一個可以跨平臺的 LAF, 可以讓程式開發人員設計出更完善的使用者界面.
這個是 OS X 預設的 LAF, 使用的是 OS X 特有的 GUI-Aqua. 的確是很漂亮, 但若使用這個界面設計的程式到了 Windows 或其它作業系統上運作時, 就不是這麼一回事了, 因為 Aqua 只有 Mac OS X 有.
這種 LAF 是在 1.6.0_10 釋出前, Java 內建的 LAF-Metal. 雖然這是個跨平臺的 LAF, 但講真的, 比起 Aqua 和 Nimbus 這並不是非常的好看.
最後, 這就是 Nimbus 了, 是不是比 Metal 好看多了? 但若和 Aqua 比, 那就交給各位自行感受~
說了這麼多, 都還沒講到重頭戲 NetBeans 要怎麼設定, 在 OS X 中安裝完 NetBeans 後, 接著按照下列步驟進行設定~
在 NetBeans 程式上點右鍵顯示套件內容
然後依照路徑 Contents -> Resources -> NetBeans -> etc 找出並開啟 netbeans.conf 這個檔案
先找出 JDK 路徑的設定, 並將 1.5 改為 1.6
netbeans_jdkhome=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
接著如果想要把 NetBeans 的 LAF 換成 Nimbus 的話, 可以找出 NetBeans 的啟動設定並加入 --laf Numbus
netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true --laf Nimbus"
OK, 搞定了~ 接著可以開心的執行 NetBeans, 可以發現 LAF 已經改為了 Nimbus, 和文章開頭那張 Aqua 的 NetBeans 很明顯地不同.
而使用的 Java 環境也順利設定成了 1.6.0_13
最後, 我想看完這篇文章之後懂我在幹嘛的人可能不多 XD 畢竟大家不是寫程式的, 但哪天如果有人同樣在 OS X 下使用 NetBeans, 希望我這篇文章能有些幫助~^___^~
附帶一提, 經過測試, Draggable Applet 似乎沒有辦法在 OS X 的 JRE 運作. 換言之以 Java 為底層技術的 JavaFX, 目前一樣無法在 OS X 下使用 draggable 這個特性的. 對這個功能有興趣的朋友, 只能等看看 Apple 有沒有意願把這個功能實作出來了 (也許 Snow Leopard 會更新!? 天曉得 orz)
在我轉換作業系統之後, 其實我一直沒有好好研究如何在 OS X 上運作 Java, 趁著今天 Apple 發佈了 Java 的更新, 來寫篇如何在 OS X 上設定 NetBeans.
這次的更新是把 Java SE 的版本由原先的 1.6.0_07 一口氣昇到了 1.6.0_13, 或許熟悉 Java 的人會覺得, 這在其它作業系統不是早就有了!? 但因 Mac OS X 上的 Java 環境是由 Apple 自行維護的, 所以這得看 Apple 對 Java 的掌握與開發進度. 事實上, 這個更新我期待了很久, 因為我一直很想試試在 1.6.0_10 這個重大改版後所新增的跨平臺 Look and Feel-Nimbus.
所謂 Look and Feel (之後簡稱 LAF) 可以想成是佈景主題這樣的東西, 但為什麼我覺得 Nimbus 很特別!? 除了 Nimbus 是個很漂亮的向量 LAF, 更重要的是一個可以跨平臺的 LAF, 可以讓程式開發人員設計出更完善的使用者界面.
這個是 OS X 預設的 LAF, 使用的是 OS X 特有的 GUI-Aqua. 的確是很漂亮, 但若使用這個界面設計的程式到了 Windows 或其它作業系統上運作時, 就不是這麼一回事了, 因為 Aqua 只有 Mac OS X 有.
這種 LAF 是在 1.6.0_10 釋出前, Java 內建的 LAF-Metal. 雖然這是個跨平臺的 LAF, 但講真的, 比起 Aqua 和 Nimbus 這並不是非常的好看.
最後, 這就是 Nimbus 了, 是不是比 Metal 好看多了? 但若和 Aqua 比, 那就交給各位自行感受~
說了這麼多, 都還沒講到重頭戲 NetBeans 要怎麼設定, 在 OS X 中安裝完 NetBeans 後, 接著按照下列步驟進行設定~
在 NetBeans 程式上點右鍵顯示套件內容
然後依照路徑 Contents -> Resources -> NetBeans -> etc 找出並開啟 netbeans.conf 這個檔案
先找出 JDK 路徑的設定, 並將 1.5 改為 1.6
netbeans_jdkhome=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
接著如果想要把 NetBeans 的 LAF 換成 Nimbus 的話, 可以找出 NetBeans 的啟動設定並加入 --laf Numbus
netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true --laf Nimbus"
OK, 搞定了~ 接著可以開心的執行 NetBeans, 可以發現 LAF 已經改為了 Nimbus, 和文章開頭那張 Aqua 的 NetBeans 很明顯地不同.
而使用的 Java 環境也順利設定成了 1.6.0_13
最後, 我想看完這篇文章之後懂我在幹嘛的人可能不多 XD 畢竟大家不是寫程式的, 但哪天如果有人同樣在 OS X 下使用 NetBeans, 希望我這篇文章能有些幫助~^___^~
附帶一提, 經過測試, Draggable Applet 似乎沒有辦法在 OS X 的 JRE 運作. 換言之以 Java 為底層技術的 JavaFX, 目前一樣無法在 OS X 下使用 draggable 這個特性的. 對這個功能有興趣的朋友, 只能等看看 Apple 有沒有意願把這個功能實作出來了 (也許 Snow Leopard 會更新!? 天曉得 orz)
留言
提醒一點, 如果進行 GUI 設計時建議使用 跨平臺的 LAF, 這樣程式如果在其它作業系統執行時, 才不會出現不可預期的版面設計錯誤
請問使用跨平臺的LAF時,在Mac上menubar不能使用原本的就好嗎?
因為我的感覺對於Mac user應該會習慣到原本的menubar去找
而不是像在windows上每個應用程式的menubar都是獨立的
那在NetBeans上可否使用Nimbus的LAF,而且也使用Mac原本的Menubar?
你的考慮是正確的, 要考慮使用者的行為, 如果你開發的軟體使用者的作業系統都是 Mac OS X, 那就沒有所謂的跨平臺的問題, 當然也沒必要使用跨平臺的 LAF.
但若使用者可能包括其它作業系統, 那我個人的意見是有必要考慮使用跨平臺的 LAF, 或者是針對不同平臺進行客製化, 簡單的方法是針對不同系統調整 GUI, 麻煩點的話就要在程式裡面進行判斷, 不同的系統使用不同的 LAF, 這就要考驗你使用 Layout 的功力了, 因為我也不敢保證你的版面不會因為不同 LAF 跑掉.
Perhaps you can try it, it is more beautiful than before, and it is not native(system) LAF that Netbeans takes.
小弟知道 NetBeans 6.7 有新的 LAF, 因為 JavaFX 的關係暫時我沒採用的打算...
但我想另一位匿名的朋友, 我沒搞清楚他需要的是開發跨平臺的軟體, 或是想只是單純想使用不同 LAF...
總之, 謝謝您給的回應