2009-07-26 85 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编译的库。