2009-07-26 84 views
4

我正在考慮將Java開源項目放在一起,並且正在爭論不支持JDK 1.4及更高版本。這個框架絕對可以使用舊的Java模式和習慣用法編寫,但是會真正受益於更成熟的1.5+版本的功能,如泛型和註釋。支持JDK 1.4還有很好的理由嗎?

所以我真正想知道的是,如果選擇框架時支持較老的JDK是一個主要決定因素?

可以理解的是,有遺留下來的系統與較老的JDK不兼容,但是除了後勤外,有沒有人有支持1.4 JDK的令人信服的技術理由?

感謝,

史蒂夫

回答

12

我想不出任何技術原因來堅持使用主流的Java 1.4的兼容性與特定移動設備或嵌入式設備可能是個例外(見喬恩的答案討論)。傳統支持必須有限制,1.5將近5年。在我看來,讓人們變得更好的更有說服力的理由。

更新(我無法入睡):一個很好的先例是Spring 3 will require Java 5 (pdf)。還要考慮到大公司正在使用或很快將使用的很多服務器(WAS 5.1不在支持since Sep '08,JBoss 4.0支持ends Sep '09)以及Java 1.4本身是out of support since Oct '08

4

有人可能想要在黑莓手機或類似的移動設備上使用它嗎?我不相信他們通常支持1.5。

+0

我接受了一般觀點,但是您確實知道黑莓手機需要Java 1.4或更早版本,據我所知,黑莓4.1版本現在需要1.5版本:http://today.java.net/pub /a/today/2009/07/02/blackberry-j2me-development.html#rims-java-development-environment-jde – 2009-07-26 20:08:09

+0

這就是說你需要*開發*黑莓,而不是什麼將運行*上*黑莓。據我所知,J2ME仍然是預泛型。 – 2009-07-26 20:21:50

+0

(這有可能是J2ME V3.0也已解除限制,但我不希望肯定地說,有非常多的可能性!) – 2009-07-26 20:24:36

1

我們的客戶只安裝了1.4(AS/400),並且安裝新JVM的任務繁重。所以,我是那些認爲Java 1.4兼容性很重要的人之一。

注意:這可能很有可能在編譯後用Retrotranslator實現。然後,您將使用原始罐子的Java 1.5和帶翻譯罐子的Java 1.4進行所有測試。

http://retrotranslator.sourceforge.net/

1

JDK 1.4出去的支持來自Sun早在2008年十月,我能想到的,爲什麼你應該支持你的軟件上一個徹頭徹尾的支持運行的唯一原因JVM是向後兼容和仍然非常依賴它的客戶羣。

0

我認爲這取決於你的項目是什麼。我們有一個仍然使用J2SE 1.4的客戶端(JRun,WebSphere 6)。

雖然我們的客戶都不在J2SE 1.3上,但我們有幾個核心組件,我們試圖保持J2SE 1.3兼容性(真正基本的,高度可重用的東西)。

也就是說,這可能不是問題。對於我們的客戶,我們可以通過運行JAR/classes到Retroweaver來使用一些J2SE 1.5編譯的庫。