mac 10.6 使用 ECLIPSE 開發 java 1.5 JDK版本問題


聽聞 這邊有許多使用 APPLE MAC SYSTEM 開發 JAVA的 前輩

請教一下關於 在 MAC 10.6 使用 Eclipse 3.5 的版本 開發 java 程式的問題

目前公司使用的環境版本是 1.5的JDK,所以我想要在MAC SNOW 裡設定為 1.5 COMPILER 去編譯

但是 SNOW 預設是1.6.0 的版本,我在 Eclipse中 有設定 使用降版 為1.5

-> 偏好設定 -> JAVA -> compiler -> JDK compliance 的 Compiler compilance level 為 1.5

-> 偏好設定 -> JAVA -> Installed JREs  -> 也選用 1.5 or 1.5.0 兩個版本都試過了,但是編譯出來的CLASS檔還是有問題

所以我想請教一下 版上的前輩,是不是我遺漏了什麼設定,還是另有其它應該要設定的地方?




我好想要用MAC 寫JAVA阿~~~~搞了一整天,編譯出來的CLASS檔都是 1.6 的版本…WAS上執行不能;;;

有勞知道的前輩提點一下,感謝><



--
查閱了GOOGLE 有不少提到降版的問題,但是 都僅限於 10.5 中 reinstall 舊版的 updata...

難道我為了要用舊版的JDK 要灌回 10.5 ??!! >"<
2009-09-17 17:43 發佈
http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard
試看看在comiler設定裡設定comliance level為 1.5

若是用ant ,則要在 build.xml 中 javac的 target設定為 1.5
ex: <javac ....target="1.5" >
要不要先回 terminal 底下測試看看這樣行不行得通? javac 加個參數
javac -source 1.5

理論上是這樣就可以 Compile 出相容於 JavaSE 5 的 bytecode...
可以參考 Sun javac 的官方文件, 不過 OS X 上的 JDK 是由 Apple 所實作, 手邊沒有 JavaSE 5 的環境也沒辦法幫你測試...
MarkYang wrote:http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard


感謝你的分享 ^^

雖然我不懂 terminal 裡面的指令

不過我照著做,最後還是成功了....看到MAC上BUILD 出來的WAR 檔

放到WAS上會動,眼淚都快流出來了><"

真的很謝謝你^^

希望其它版友要是有相同的困擾,一定要試試看阿

--
後記。過程中,我是先下載 二樓提供的連結檔案 直接拖拉到 VERSION 的目錄下,系統會問你密碼~

最後再執行 以下的指令(SORRY 我不瞭解指令意義為何,還請知道的前輩抽空回答一下)

cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo rm 1.5.0
sudo ln -s 1.5.0-leopard 1.5.0


就成功了 有需要的快去試試~


--
補充:我系統預設是無密碼。在終端機下,無密碼會當成輸入失敗

我是去變更密碼後,才能執行最後的那些步驟。提供給大家參考。
RandyJr wrote:
試看看在comiler設定裡設定comliance level為 1.5

若是用ant ,則要在 build.xml 中 javac的 target設定為 1.5
ex: <javac ....target="1.5" >


有設定了,不過一直不成功。

但是還是謝謝你的回覆~^^

感謝菲立大借我遠端共享桌面讓我測試,
測試的問題為 "Mac OS X 10.6 的 JDK 6 是否可以 compile 出相容於 JDK 5 的 bytecode"

測試環境是菲立大的 Mac OS X 10.5
編譯環境是小弟的 Mac OS X 10.6

附加檔案裡頭有兩個 .class, 一個是 ExamJava5.class, 另一個是 ExamJava6.class
裡頭都只有一個 main method
執行 System.out.println() 印出 This is JavaSE 5! 或 This is JavaSE 6!

Compile ExamJava5.java 時 附加了 -source 1.5 的參數
<i.e. javac -source 1.5 ExamJava5.java>
Compile ExamJava6.java 時, 則使用 OS X 10.6 預設值(以 1.6 進行 compile)

在 Mac OS X 10.5 的環境下, 將環境設定為 Java SE 5 時,
ExamJava5 可順利執行
ExamJava6 則跳出了無法辨別的 exception


在 Mac OS X 10.5 的環境下, 將環境設定為 Java SE 6 時,
ExamJava5 和 ExamJava6 兩者都可以順利執行

測試結果
==> 在 Mac OS X 10.6 中, 雖然只有 JDK 6, 但是只要在 compile 時, 加入 -source 1.5 則可 compile 出相容於 JDK 5 的 bytecode

附帶一提, 使用 -target 1.5 的效果和 -source 1.5 的效果類似, 在 javac 的文件中寫道 "The default for -target depends on the value of -source".
但是使用 -source 時會一同檢查 code 是否符合指定版本的規範. 詳細資料還請參考 Sun 的 JDK 文件

附加壓縮檔: 200909/mobile01-f65db528fa51f41c432d0cbb15d63069.zip


-------------------------------- 我是分隔線 --------------------------------
不過這個小實驗好像也沒解決使用 Eclipse 的問題就是了...
小弟和 Eclipse 不熟, 跟 NetBeans 比較熟啦 XD
No problem,
若是您真的必須裝進JDK5,請記得這邊順便改一下:
$ cd /System/Library/Frameworks/JavaVM.framework/Versions/
$ sudo rm 1.5.0
$ sudo ln -s 1.5.0-leopard 1.5.0
$ sudo rm 1.5
$ sudo ln -s 1.5.0 1.5
有的程式是直接抓 1.5 那個 link.
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?